Javascript Program to Sort the matrix row-wise and column-wise
Last Updated :
12 Sep, 2024
Improve
Given a n x n matrix. The problem is to sort the matrix row-wise and column-wise.
Examples:
Input : mat[][] = { {4, 1, 3},
{9, 6, 8},
{5, 2, 7} }
Output : 1 3 4
2 5 7
6 8 9
Input : mat[][] = { {12, 7, 1, 8},
{20, 9, 11, 2},
{15, 4, 5, 13},
{3, 18, 10, 6} }
Output : 1 5 8 12
2 6 10 15
3 7 11 18
4 9 13 20
Approach:
The following are the steps:
- Sort each row of the matrix.
- Get transpose of the matrix.
- Again sort each row of the matrix.
- Again get transpose of the matrix.
Algorithm for getting transpose of the matrix:
for (int i = 0; i < n; i++) {
for (int j = i + 1; i < n; i++) {
int temp = mat[i][j];
mat[i][j] = mat[j][i];
mat[j][i] = temp;
}
}
// Javascript implementation to sort the
// matrix row-wise and column-wise
let MAX_SIZE = 10;
// function to sort each row of the matrix
function sortByRow(mat, n) {
for (let i = 0; i < n; i++)
// sorting row number 'i'
mat[i].sort(function (a, b) { return a - b; });
}
// function to find transpose of the matrix
function transpose(mat, n) {
for (let i = 0; i < n; i++)
for (let j = i + 1; j < n; j++) {
// swapping element at index (i, j)
// by element at index (j, i)
let temp = mat[i][j];
mat[i][j] = mat[j][i];
mat[j][i] = temp;
}
}
// function to sort the matrix row-wise
// and column-wise
function sortMatRowAndColWise(mat, n) {
// sort rows of mat[][]
sortByRow(mat, n);
// get transpose of mat[][]
transpose(mat, n);
// again sort rows of mat[][]
sortByRow(mat, n);
// again get transpose of mat[][]
transpose(mat, n);
}
// function to print the matrix
function printMat(mat, n) {
for (let i = 0; i < n; i++) {
let output = '';
for (let j = 0; j < n; j++)
output += mat[i][j] + " ";
console.log(output);
}
}
// Driver code
let mat = [[4, 1, 3],
[9, 6, 8],
[5, 2, 7]];
let n = 3;
console.log("Original Matrix:<br>");
printMat(mat, n);
sortMatRowAndColWise(mat, n);
console.log("Matrix After Sorting:");
printMat(mat, n);
// This code is contributed by avanitrachhadiya2155
Output
Original Matrix:<br> 4 1 3 9 6 8 5 2 7 Matrix After Sorting: 1 3 4 2 5 7 6 8 9
Complexity Analysis:
- Time Complexity: O(n2log2n).
- Auxiliary Space: O(1).
Please refer complete article on Sort the matrix row-wise and column-wise for more details!