How to sort each column of a matrix with strings in Node.js

1 Answer

0 votes
function sortColumns(matrix) {
    let rows = matrix.length;
    let cols = matrix[0].length;

    for (let col = 0; col < cols; col++) {
        // Extract column into an array
        let column = [];
        for (let row = 0; row < rows; row++) {
            column.push(matrix[row][col]);
        }

        // Sort the column
        column.sort();

        // Place sorted values back into the matrix
        for (let row = 0; row < rows; row++) {
            matrix[row][col] = column[row];
        }
    }
}

function printMatrix(matrix) {
    matrix.forEach(row => console.log(row.join(" ")));
}

// Define the matrix
let matrix = [
    ["ccc", "zzzz", "yyyyyy"],
    ["eeee", "aaa", "ffff"],
    ["dd", "mmm", "uuu"],
    ["bbb", "gg", "x"]
];

// Execute sorting and printing
console.log("Original Matrix:");
printMatrix(matrix);

sortColumns(matrix);

console.log("\nSorted Matrix:");
printMatrix(matrix);

// Export the function for module usage
module.exports = { sortColumns, printMatrix };



/*
run:

Original Matrix:
ccc zzzz yyyyyy
eeee aaa ffff
dd mmm uuu
bbb gg x

Sorted Matrix:
bbb aaa ffff
ccc gg uuu
dd mmm x
eeee zzzz yyyyyy

*/

 



answered Jun 2 by avibootz
...