堆的定义

堆是一种特殊的完全二叉树,其中每个节点的值都大于或等于(最大堆)或小于或等于(最小堆)其子节点的值。

堆的性质

  1. 堆的根节点(最大堆的根节点是最大值,最小堆的根节点是最小值)。
  2. 堆的每个子树也是一个堆。
  3. 堆的节点数为 nn,则其高度为 log2n\log_2 n

堆的实现

堆的实现通常使用数组来表示,其中每个元素的索引表示节点在树中的位置。

堆的插入

堆的插入操作通常是将新元素添加到数组的末尾,然后通过上浮操作(sift up)将新元素移动到正确的位置。

堆的删除

堆的删除操作通常是将根节点删除,然后通过下沉操作(sift down)将最后一个元素移动到根节点的位置。