Во время теста на программирование мне было предложено написать программу Java для сортировки по матрице 3x3. т.е. я получил матрицу (2D-массив, скажем, m[3][3]
)Сортировка матрицы nxn (2D-массив)
2 6 1
3 5 7
4 8 9
меня попросили разобраться эту матрицу, которая должна давать выходную матрицу
1 2 3
4 5 6
7 8 9
Что я сделал, чтобы преобразовать эту 3x3 матрицу в 1D массив
a[9] = {2,6,1,3,5,7,4,8,9}
и выполнил пузырьковую сортировку на этом массиве и преобразуют результирующий массив обратно в 2D массив.
Я не был доволен этим подходом, поскольку я чувствовал, что этот подход очень дрянной. Есть лучший способ сделать это.
Редактировать: Я хотел бы удалить часть преобразования массива. Любой алгоритм сортировки можно использовать и хотел бы выполнить сортировку по самой матрице (2D-массив).
Да, с помощью более эффективной, чем вид пузырьковой сортировки. Но это странная задача, так как матрица абсолютно не рассматривается как матрица. – biziclop
Для меньшего n вы также можете попробовать сортировку сети. – quintin