树--2.堆

Posted hornets

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了树--2.堆相关的知识,希望对你有一定的参考价值。

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

1.二叉堆的自我调整

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

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

插入时insert到最后一个节点

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

技术图片

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

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

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

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

技术图片

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

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

技术图片

以上是关于树--2.堆的主要内容,如果未能解决你的问题,请参考以下文章

【排序】堆、完全二叉树、堆排序、PriorityQueue、TopK

二叉树,堆详解

NO.9章 树(遍历BSTAVL并查集堆哈夫曼)

数据结构与算法:树 堆排序

数据结构—— 树:堆

数据结构----二叉树(未写完)