按排序顺序打印行和列明智排序的2 D矩阵

时间:2014-12-04 06:37:28

标签: matrix

给定n x n矩阵,其中每个rowcolumn按非递减顺序排序。按排序顺序打印矩阵的所有元素。

示例:

输入:

mat[][]  =  { {10, 20, 30, 40},
                 {15, 25, 35, 45},
                 {27, 29, 37, 48},
                 {32, 33, 39, 50},
               };

输出:
(按排序顺序排列的矩阵元素)

10 15 20 25 27 29 30 32 33 35 37 39 40 45 48 50

我无法弄清楚如何做到这一点。但据我所知,我们可以将二维矩阵放在一个矩阵中并应用排序函数。但我需要空间优化代码。

1 个答案:

答案 0 :(得分:0)

使用堆在这里是个好主意。

有关非常类似的问题,请参阅以下内容: http://www.geeksforgeeks.org/kth-smallest-element-in-a-row-wise-and-column-wise-sorted-2d-array-set-1/

认为上面链接中的问题不同,可以使用相同的方法来解决您指定的问题。你不需要在链接解释时循环k次,而是需要访问矩阵中的所有元素,即你应该循环直到堆为空。