【发布时间】:2010-11-25 17:21:35
【问题描述】:
给定一个 m 行 n 列的矩阵,每个矩阵都是排序的。如何高效地对整个矩阵进行排序?
我知道一个运行时间为 O(m n log(min(m,n)) 的解决方案。我正在寻找更好的解决方案。
我知道的方法基本上一次需要 2 行/列并应用合并操作。
这是一个例子:
[[1,4,7,10],
[2,5,8,11],
[3,6,9,12]]
是输入矩阵,它对每一行和每一列都进行了排序。
预期输出是:
[1,2,3,4,5,6,7,8,9,10,11,12]
另一个例子:
[[1, 2, 3, 3, 4, 5, 6, 6, 7, 7],
[1, 2, 4, 6, 7, 7, 8, 8, 9,10],
[3, 3, 4, 8, 8, 9,10,11,11,12],
[3, 3, 5, 8, 8, 9,12,12,13,14]]
【问题讨论】:
-
矩阵中单元格的最大值是否已知?内存复杂度是个问题吗?
-
这个问题相当模糊 - 尝试给出一个小的 m x n 矩阵的前后示例。
-
认为他只是想对矩阵中的值进行排序。 (即给定特定的值结构,对值进行排序的有效方法是什么)
-
@Paul
[(1, 4, 8), (2, 9, 11), (3, 12, 14)] -
刚刚添加了一个主要问题的示例。