首页 > 编程语言 > 详细

对堆排序的理解

时间:2019-10-31 17:30:31      阅读:61      评论:0      收藏:0      [点我收藏+]

以小顶堆为例

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

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

为什么这么做?

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

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

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

 

对堆排序的理解

原文:https://www.cnblogs.com/letlifestop/p/11772160.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!