码迷,mamicode.com
首页 > 其他好文 > 详细

树--2.堆

时间:2020-04-24 18:44:14      阅读:51      评论:0      收藏:0      [点我收藏+]

标签:完全二叉树   维护   本质   最大   src   mic   完全   构建   时间复杂度   

本质上是一种完全二叉树
分为两个类型:
1.最大堆: 所有父节点的值都大于左右孩子节点的值
2.最小堆:所有父节点的值都小于左右孩子节点的值
二叉堆根节点叫堆顶

1.二叉堆的自我调整

自我调整就是把不符合堆性质的完全二叉树调整成一个堆。

1.插入节点(最小堆举例)

插入时insert到最后一个节点

单一节点上浮 时间复杂度O(logn)

技术图片

2.删除节点(最小堆举例)

删除跟插入相反 从堆顶开始删除,并维护二叉堆结构把随后一个节点补充到堆顶

下沉时候跟左右节点的最小的节点对比

单一节点下沉 时间复杂度O(logn)

技术图片

3.构建二叉堆(最小堆举例)

所有非叶子节点都下沉 时间复杂度O(n)

技术图片

树--2.堆

标签:完全二叉树   维护   本质   最大   src   mic   完全   构建   时间复杂度   

原文地址:https://www.cnblogs.com/hornets/p/12769313.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!