堆可以表示成数组的形式。按照层次遍历
N个节点的层数为logN
索引为i的结点 的父节点为:(i - 1) // 2
索引为i的结点 的左节点为:2i + 1
索引为i的结点 的右节点为:左节点索引 + 1 或者2i + 2
根节点的值最大
最大值在根节点 MAX heap
或者做一个最小值在上面 MIN heap
由于高度为log n
所以从最低层到根节点最多需要log n 的操作
所以插入一个节点的复杂度为logn
上升的终止条件:
1、到了根节点
2、小于父节点
堆的删除 只能删除最大的 删除后且保证还是一个堆
堆 python实现
最新推荐文章于 2024-06-26 19:29:00 发布