对堆排序的理解

以小顶堆为例

首先第一步是将堆建立起来,保证根节点是整棵树最小的,然后每个节点所代表的子树,这个节点的值也是这个子树中最小的

然后第二步,将节点一个一个的和根节点进行交换

为什么这么做?

第一步中,我们已经确定根节点就是这些元素中最小的那个,然后将这个节点和最后一个节点进行交换,去调整前n - 1个元素构成的堆。

之所以每次将栈顶元素和后面的节点进行交换,是因为我们建立的堆能保证堆顶在当前的堆的范围中是最小的,也就是每次只调整一个,要调整的堆的size

越来越小,所以就可以实现对数组的一个排序

 

posted @ 2019-10-31 16:47  Let_Life_Stop  阅读(189)  评论(0编辑  收藏  举报