关于堆排序
https://www.cnblogs.com/linjj/p/5260763.html
堆的其他应用:
1.求一个数列中的第K大的数
建立一个大小为K的最小堆,堆顶就是第K大的数
例如,假设有10个数,要求求第3大的数,第一步选取任意的3个数,比如说是前3个,将这3个数建成最小堆,然后从第4个数开始,与堆顶
的数比较,如果比堆顶的数要小,那么这个数就不要,如果比堆顶的数大,则舍弃当前的堆顶而将这个数作为新的堆顶,并再去维护堆
2.求出一个数列中前k个最大的数据
用一个大小为k的数组,里面塞入数据,后面的数据只要比这个数组的任何一个元素大,则替换掉,遍历完毕即可。

浙公网安备 33010602011771号