Помогите написать сортировку двумерного массива методом Шелла к этой программе чтобы сортировал так как указанно на изображении. С++
Заранее спасибо
код программы:
#include <iostream>
using namespace std;
int main() {
setlocale(LC_ALL, "Rus");
int n, m;
//создаем массив
cout << "Розмiр: ";
cin >> n;
m = n;
int** matrix = new int* [n];
for (int i = 0; i < n; i++)
matrix[i] = new int[m];
//инициализируем
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
matrix[i][j] = rand() % 30;
}
}
//выводим массив
cout << "матриця: " << endl;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cout << matrix[i][j] << " ";
}
cout << endl;
}
cout << endl;
//простой алгоритм сортировки
int temp;
for (int col = 0; col < n / 2; col++) {
for (int i = col + 1; i < n - col - 2; i++) {
for (int j = n - col - 2; j > i; j--) {
if (matrix[j - 1][col] > matrix[j][col]) {
temp = matrix[j-1][col];
matrix[j-1][col] = matrix[j][col];
matrix[j][col] = temp;
}
}
}
}
//вывод отсортированого массива
cout << "матрица: " << endl;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
cout << matrix[i][j] << " ";
cout << endl;
}
return 0;
}