我们之前写过堆的实现代码:数据结构:堆的实现-CSDN博客
这篇文章我们了解一下堆到底是如何实现的
1.堆向下调整算法
现在我们给出一个数组,逻辑上看做一颗完全二叉树。我们通过从根节点开始的向下调整算法可以把它调整成一个小堆
向下调整算法有一个前提:左右子树必须是一个堆,才能调整
2.堆的创建
下面我们给出一个数组
现在我们通过算法,把它构建成一个堆
一个非叶子节点的子树开始调整,一直调整到根节点的树,就可以调整成堆
3.建堆时间复杂度



4.堆的插入
先插入一个10到数组的尾上,再进行向上调整算法,直到满足堆
5.堆的删除
删除堆是删除堆顶的数据,将堆顶的数据根最后一个数据一换,然后删除数组最后一个数据,再进行向下调整算法
6.堆的代码实现
数据结构:堆的实现-CSDN博客