以小顶堆为例
首先第一步是将堆建立起来,保证根节点是整棵树最小的,然后每个节点所代表的子树,这个节点的值也是这个子树中最小的
然后第二步,将节点一个一个的和根节点进行交换
为什么这么做?
第一步中,我们已经确定根节点就是这些元素中最小的那个,然后将这个节点和最后一个节点进行交换,去调整前n - 1个元素构成的堆。
之所以每次将栈顶元素和后面的节点进行交换,是因为我们建立的堆能保证堆顶在当前的堆的范围中是最小的,也就是每次只调整一个,要调整的堆的size
越来越小,所以就可以实现对数组的一个排序
原文:https://www.cnblogs.com/letlifestop/p/11772160.html