Open in App
Not now

# C++ Program to Sort the given matrix

• Last Updated : 18 Jan, 2022

Given a n x n matrix. The problem is to sort the given matrix in strict order. Here strict order means that matrix is sorted in a way such that all elements in a row are sorted in increasing order and for row ‘i’, where 1 <= i <= n-1, first element of row 'i' is greater than or equal to the last element of row 'i-1'.
Examples:

Input : mat[][] = { {5, 4, 7},
{1, 3, 8},
{2, 9, 6} }
Output : 1 2 3
4 5 6
7 8 9

Approach: Create a temp[] array of size n^2. Starting with the first row one by one copy the elements of the given matrix into temp[]. Sort temp[]. Now one by one copy the elements of temp[] back to the given matrix.

## C++

 // C++ implementation to sort the given matrix #include using namespace std;    #define SIZE 10    // function to sort the given matrix void sortMat(int mat[SIZE][SIZE], int n) {     // temporary matrix of size n^2     int temp[n * n];     int k = 0;        // copy the elements of matrix one by one     // into temp[]     for (int i = 0; i < n; i++)         for (int j = 0; j < n; j++)             temp[k++] = mat[i][j];        // sort temp[]     sort(temp, temp + k);            // copy the elements of temp[] one by one     // in mat[][]     k = 0;     for (int i = 0; i < n; i++)         for (int j = 0; j < n; j++)             mat[i][j] = temp[k++]; }    // function to print the given matrix void printMat(int mat[SIZE][SIZE], int n) {     for (int i = 0; i < n; i++) {         for (int j = 0; j < n; j++)             cout << mat[i][j] << " ";         cout << endl;     } }    // Driver program to test above int main() {     int mat[SIZE][SIZE] = { { 5, 4, 7 },                             { 1, 3, 8 },                             { 2, 9, 6 } };     int n = 3;        cout << "Original Matrix: ";     printMat(mat, n);        sortMat(mat, n);        cout << " Matrix After Sorting: ";     printMat(mat, n);        return 0; }

Output:

Original Matrix:
5 4 7
1 3 8
2 9 6

Matrix After Sorting:
1 2 3
4 5 6
7 8 9

Time Complexity: O(n2log2n).
Auxiliary Space: O(n2).

Please refer complete article on Sort the given matrix for more details!

My Personal Notes arrow_drop_up
Related Articles