数据结构--堆的要点、实现以及建堆时间复杂度证明
文章目录堆排序要点总结建堆详细时间复杂度证明实现代码(python)小根堆测试代码(堆排序正确性测试)
堆排序要点总结
堆的两个要素:是完全二叉树并且父节点的值一定大于(大根堆)或小于(小根堆)它的左右孩子。所有的操作,仔细思考后会发现,都是为绕这两点在做功课。
构建时使用的基础数据结构,一般使用数组模拟完全二叉树,模拟方法:
1号元素即为根节点
对于一个编号为n的节点,其左子节点编号为 2n,其右子节点编号为 2n + 1,其父节点编号为 n // 2
如果总结点数为n,则
原创
2021-05-16 18:20:08 ·
838 阅读 ·
0 评论