堆排序的规则讲解

堆排序是一种利用堆这种数据结构设计的排序算法,堆本质上是二叉树结构,但是这里又多了个条件:根结点大于等于左右结点;

其实,堆排序本质上和冒泡排序有异曲同工之处,整个排序过程分以下几步:

1. 这里有一组顺序混乱的数组:

2. 首先,将这个数组排成一个二叉树结构:

3. 从右到左,从下到上,从二叉树的最后一个结点开始按照规则(根结点大于等于子结点)整理结点:

4. 最终,当所有结点都被遍历之后我们便得到一个是大值的顶结点(这里是 96):

5. 此时,将顶结点与最末端的子结点互换位置,并将其从排序队列中退出,此时顶结点不再满足规则,需要重新排序:

6. 以此类推,哪个结点发生变动,就将哪个结点重新排序,直到所有结点都满足规则,这样每次都可以得到一个当前队列中最大的值;

7. 按照以上操作,直到队列中只剩下最后一个结点,排序结束;

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值