堆排序学习

堆是一个完全二叉树,最大堆的节点值大于左右子节点,这样,根节点就是最大的节点
在求最大值的应用中很方便
由于是完全二叉树,堆结构可以很清楚的映射到数组中进行保存
堆构造的时候,在数组最后保存数据,然后调整结构
二叉排序树查找最大值还需要进行查找操作
删除操作的时候,为了保证结构稳定,把最后的节点填充到空位,再进行位置调整

了解堆的结构后,就比较容易理解堆排序了,以大根堆为例,根节点是最大值,把根节点和最后的节点交换一下,再进行数据调整,这个调整是一层层的进行的,时间复杂度是lgN,

参考
https://www.cnblogs.com/lsf2015/p/4735257.html

我用#优快云#这个app发现了有技术含量的博客,小伙伴们求同去《堆排序算法(图解详细流程)》, 一起来围观吧 https://blog.youkuaiyun.com/u010452388/article/details/81283998

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值