排序算法——堆排序

ZMonster at 
目录堆排序概述堆排序实现节点访问建立大顶堆实现堆排序发散:TOP K 问题堆排序概述大顶堆 或者 小顶堆 。这里的堆是一种数据结构,它是一棵完全二叉树(除最后一层外,其他层都是满的),且每个节点都具有同一种特性,那就是该节点的值大于子节点的值,或者节点的值小于子节点的值,前者被称为 大顶堆 ,后者被称为 小顶堆 。大顶堆的根节点的值一定是整个堆中最大的,小顶堆的根节点的值一定是堆中最小的。利用这个特性,如果要对一个数组进行升序排序,那么可以按照以下步骤进行:将数组元素视为一个堆,建立大顶堆将堆顶元素和堆尾元素交换,并出堆对堆进行处理,维持大顶堆性质重复 2、3 步(此时已出堆的元素不再处理),……