Heap 原理

堆(Heap)是一种基于完全二叉树的数据结构,常用于实现优先队列。它分为两种类型:

  • 最大堆:父节点的值 ≥ 子节点的值
  • 最小堆:父节点的值 ≤ 子节点的值

堆通常通过数组实现,利用完全二叉树的特性高效管理元素。

示例:

[50, 30, 20, 15, 10, 5]
        50
      /    \
    30      20
   /  \    /
 15   10  5

  • 插入:插入到数组末尾,依次和父节点交换
  • 删除:移除数组头后,将数组尾的值放入数组头,依次和子节点交换