2011年5月30日
摘要: 如题:给出N个整数(N可能很大,以致无法装入内存),找出前K个最大的整数【解法一】当学生们信笔写下 float array [10000000],他们往往没有想到这个数据结构要如何在电脑上实现,是从当前程序的栈(Stack)中分配,还是堆(Heap),还是电脑的内存也许放不下这么大的东西?我们先假设元素的数量不大,例如在几千个左右,在这种情况下,那我们就排序一下吧。在这里,快速排序或堆排序都是不错的选择,他们的平均时间复杂度都是 O(N * log2N)。然后取出前 K 个,O(K)。总时间复杂度 O(N * log2N)+ O(K) = O(N * log2N)。你一定注意到了,当 K=1 阅读全文
posted @ 2011-05-30 19:08 Kadin Zhu 阅读(3452) 评论(0) 推荐(1) 编辑