How to sort each column of a matrix with strings in TypeScript

1 Answer

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

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

        // Sort the column
        column.sort();

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

function printMatrix(matrix: string[][]): void {
    matrix.forEach(row => console.log(row.join(" ")));
}

let matrix: string[][] = [
    ["ccc", "zzzz", "yyyyyy"],
    ["eeee", "aaa", "ffff"],
    ["uu", "hhh", "uuu"],
    ["bbb", "gg", "x"]
];

console.log("Original Matrix:");
printMatrix(matrix);

sortColumns(matrix);

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

  
  
/*
run:
      
"Original Matrix:" 
"ccc zzzz yyyyyy" 
"eeee aaa ffff" 
"uu hhh uuu" 
"bbb gg x" 

"Sorted Matrix:" 
"bbb aaa ffff" 
"ccc gg uuu" 
"eeee hhh x" 
"uu zzzz yyyyyy"  

*/
 

 



answered Jun 2, 2025 by avibootz
...