TopK问题

给你1亿个不重复的数字(整数,1~2^32-1),求出top10。前10大的数字,还可动态添加新数字,但总个数不会超过1亿。 冒泡 冒泡是一个很常见的排序方法,每冒一个泡,找出最大值,冒k个泡,就得到TopK 时间复杂度:O(n*k) 堆 先用前k个元素生成一个小顶堆,这个小顶堆用于存储,当前最大的k个元素 接着,从第k+1个元素开始扫描,和堆顶(堆中最小的元素)比较,如果被扫描的元素大于堆顶,则
相关文章
相关标签/搜索