Get K maximum data among N data
从个数为N的数据集合中找出K个最大值
较快的算法是:
较快的算法是:
- 建一个数据量为K的最小堆, 并初始化为可能的最小值。
- 从待搜索的数据中逐一和上述堆顶元素比较:若小于等于堆顶,则弃之;若大于堆顶,则使之替代堆顶。
- 在新的堆中找出最小值置于堆顶。
- 重复2, 3直至第N的数据。
- 现在堆中的元素就是所要找的K个最大值。