学习笔记(2)BUUCTF-RE-CrackRTF

集成学习-逻辑回归原理/线性判别/决策树(DataWhale第二期)

  返回  

排序之堆排序

2021/7/20 23:24:49 浏览:

目录

一、堆的定义

二、建立大根堆(小根堆会得到递减序列)

三、进行排序

代码实现:

小结:

四、堆中插入新元素

五、堆中删除元素

小结:

下一篇:排序之归并排序


一、堆的定义

理解为完全二叉树

二、建立大根堆(小根堆会得到递减序列)

非终端结点编号为n/2向下取整

代码:

三、进行排序

87与堆底元素互换后,发现该堆不是个大根堆,要将该堆调整,将09下沉

调整后

第一趟处理完成

依次处理完堆中所有元素

最后结果:

代码实现:

全部代码:

效率分许:

结论

建堆时间复杂度

排序过程中下沉的时间复杂度

整体来看:

空间复杂度为O(1)

稳定性

不稳定

小结:

四、堆中插入新元素

小根堆为例

在数组最后加入元素13(就是在堆的末尾加上13这个结点)

父结点大于这个新结点就交换依次往上

最后到达

五、堆中删除元素

用堆底的元素代替删除的元素,再让该元素下坠直到无法下坠

不断下坠后

对比次数

下坠中若有两个孩子则对比两次

一个孩子则对比一次

小结:

联系我们

如果您对我们的服务有兴趣,请及时和我们联系!

服务热线:18288888888
座机:18288888888
传真:
邮箱:888888@qq.com
地址:郑州市文化路红专路93号