本质是:树状结构的使用
1、 堆:对任意一棵树的任意一个非叶子节点,该节点值应该大于等于(或小于等于)左右子节点的数据结构
若满足大于等于,则为大顶堆;反之为小顶堆
2、算法思想:假设一个大顶堆有n个元素,则将根顶点的元素输出,之后将剩下的n-1个元素再次调整为大顶推,然后再输出根顶点元素,直到堆中没有元素为止
3、堆排序可分为创建堆,调整堆两个步骤
创建大顶堆
1、创建大顶堆,就是将一个无序的集合调整为 a[i]>=a[2*i] && a[i]>=a[2*i+1] 的数据结构,其中i>=0 && i<=n/2
2、建立大顶堆的思想
原文:http://www.cnblogs.com/wshyj/p/6337986.html