最小的K个数,堆排序——剑指offor Java程序
对于海量数据中,数量量大于内存可接受的数据,需要选择出最小的k个数,内存无法对所有的数据进行排序,因此可采用一个大小为k的堆容器b[],进行辅助排序。对于原始数据数组a[],大小为n,n>>k。
初始时将n个元素中的前k个元素存储在堆容器b[]数组中,并对其进行堆排序,建立大顶堆(所有父节点的元素大于子节点)。堆排序是从第一个非叶子节点开始进行调整,此节点与其子节点进行比较,若子节点大于
原创
2017-05-05 17:43:20 ·
389 阅读 ·
1 评论