标签: algorithm
我知道我们可以通过两种方式从n个未排序的整数中找到k个最大的数字:
假设n个整数在流中,我们没有随机访问它们
我想知道是否有可能从时间复杂度为O(n)和空间复杂度为O(k)的n个未排序整数中找到k个最大的数?
答案 0 :(得分:5)
是的。在用k个元素填充堆之后,不是在每次插入后从堆中驱逐一个元素,而是在每次插入k之后从堆中驱逐k个元素。那么你不再需要堆结构 - 只需每次都选择。
答案 1 :(得分:-1)
k冒泡排序将在数组timeo(nk)