Помогите написать сортировку двумерного массива методом Шелла к этой программе чтобы сортировал так как указанно на изображении. С++

массив N на N Заранее спасибо код программы:

   #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;
}

Ответы (0 шт):