Heap 原理
堆(Heap)是一种基于完全二叉树的数据结构,常用于实现优先队列。它分为两种类型:
- 最大堆:父节点的值 ≥ 子节点的值
- 最小堆:父节点的值 ≤ 子节点的值
堆通常通过数组实现,利用完全二叉树的特性高效管理元素。
示例:
[50, 30, 20, 15, 10, 5]
50
/ \
30 20
/ \ /
15 10 5
- 插入:插入到数组末尾,依次和父节点交换
- 删除:移除数组头后,将数组尾的值放入数组头,依次和子节点交换