摘要: package com.zjl.tool.sort; /** * 求前面的最大K个 解决方案:小根堆 (数据量比较大(特别是大到内存不可以容纳)时,偏向于采用堆) * @author 张恩备 * @date 2016-11-25 下午12:15:36 */ public class TopNByHeap { /** * 待排序列(R1,R2,...,Rk,...Rn)... 阅读全文
posted @ 2017-10-02 21:15 花弄影 阅读(1723) 评论(0) 推荐(0) 编辑
摘要: 1.将待排序列以一个完全二叉树存储,设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第h层所有的结点都连续集中在最左边,这就是完全二叉树。 2.第一趟排序,从二叉树的最后一个根节点(有步骤1可知是值为12的节点)开始,调整当前节点所在的堆,使当前节点大于所有子节 阅读全文
posted @ 2017-10-02 19:55 花弄影 阅读(362) 评论(0) 推荐(0) 编辑