在O(K)时间内找到大小为N的堆中最大K数的算法?

时间:2017-10-30 21:45:37

标签: algorithm

任何人都可以想到一种算法,其中输入是大小为n的堆A和值Y,其中算法将返回A中所有> = Y的值。

条件是运行时间必须是O(k)(我们返回的元素数量)。

我不是在寻找代码,只是解决这个问题的一个想法的大致轮廓。例如,假设Heap是MAX堆,则数组将从最高到最小排序,在这种情况下,我可以遍历数组,直到A [i]<收率

我只能想到使用min / max堆的解决方案,如果堆不在任何一种情况下我都想不出任何解决方案。

0 个答案:

没有答案