【发布时间】:2014-01-10 17:16:33
【问题描述】:
我有 n 个数组。这些数组中的每一个都可以是无限长的。 (长度可以是可变的)。所有这 n 个数组都已排序。
现在我想从这 n 个已排序的数组中取出前 k 个最小的元素。
例如 n=5 和 k=10
2 4 6 7 9
23 45 67 78 99
1 2 6 9 1000 4567 6567 67876
45 56 67 78 89 102 103 104
91 991 9991 99991
现在答案应该是1 2 4 6 7 9 23 45 56 67
在最坏的情况下是 O(n*k),即 O(n^2),在最好的情况下是 O(k)?
【问题讨论】:
-
运行时还是空间?那么空间限制呢?
-
@Gumbo 没有空间限制,足够的内存
-
当您说“最大”时,我认为您的意思是“最小”
-
一个可以写很多算法来解决这个问题,它们之间会有很多时间复杂度。您是否有特定的想法,或者您是否要求我们给您(可能是最快的)一个?如果您要求我们给您一个,您应该展示您自己想出一个的尝试。
-
@Dukeling 如果你能给我,我要求最好的情况。
标签: algorithm sorting time-complexity