Files
Learn-Algorithms/4 Tree/8-堆/Top-K 问题.md
T
2021-11-09 14:21:46 +08:00

636 B

Top-K 问题

问题描述:从arr[1, n]这n个数中,找出最大的k个数,这就是经典的TopK问题

思路

  1. 排序,全局都排序了,这也是这个方法复杂度非常高的原因 ; 排序算法参考这里
  2. 冒泡排序,局部排序徐,只对最大的k个数排序
  3. 堆排序, 只找最大的k个数,这k个数不需要排序; top-k大 问题就是用 小根堆, 小根堆 固定为 k 个元素大小 , 遍历 k-N (N为所有数据的个数),插入小根堆并调整堆,以保证堆内的k个元素,总是当前最大的k个元素。