Как отсортировать матрицу в с++?

Для сортировки матрицы в C++ можно использовать различные алгоритмы, такие как сортировка пузырьком, сортировка вставками или сортировка слиянием. Для простоты объяснения рассмотрим пример с использованием функции std::sort из стандартной библиотеки C++.

Первым шагом будет подключение заголовочного файла <algorithm>, который содержит объявление функции std::sort. Затем создадим двумерный массив (матрицу) и заполним его значениями:

#include <iostream>
#include <algorithm>

const int ROWS = 3;
const int COLS = 3;

int main() {
   int matrix[ROWS][COLS] = {{3, 2, 1},
                             {6, 5, 4},
                             {9, 8, 7}};

После этого вызовем функцию std::sort и передадим ей указатели на начало и конец матрицы:

   std::sort(&matrix[0][0], &matrix[0][0] + ROWS * COLS);

В результате функция std::sort отсортирует все элементы матрицы в порядке возрастания. Здесь мы использовали указатели на первый и последний элементы матрицы, вычисляя последний элемент с помощью умножения количества строк на количество столбцов.

Наконец, можно вывести отсортированную матрицу:

   for (int i = 0; i < ROWS; i++) {
      for (int j = 0; j < COLS; j++) {
         std::cout << matrix[i][j] << " ";
      }
      std::cout << std::endl;
   }

   return 0;
}

Полный код программы будет выглядеть так:

#include <iostream>
#include <algorithm>

const int ROWS = 3;
const int COLS = 3;

int main() {
   int matrix[ROWS][COLS] = {{3, 2, 1},
                             {6, 5, 4},
                             {9, 8, 7}};

   std::sort(&matrix[0][0], &matrix[0][0] + ROWS * COLS);

   for (int i = 0; i < ROWS; i++) {
      for (int j = 0; j < COLS; j++) {
         std::cout << matrix[i][j] << " ";
      }
      std::cout << std::endl;
   }

   return 0;
}

После запуска этой программы вы увидите отсортированную матрицу:

1 2 3
4 5 6
7 8 9

Таким образом, функция std::sort из стандартной библиотеки C++ позволяет удобно сортировать матрицы. Она автоматически определяет тип элементов и использует алгоритм сортировки, который гарантирует эффективность и корректность упорядочивания элементов. Другие алгоритмы сортировки могут быть использованы при необходимости, но std::sort является удобным и надежным вариантом для большинства случаев.