🌳 二叉堆 · pushUp / pushDown

▶ 📖 二叉堆 · 原理与操作

二叉堆(Binary Heap) 是一种特殊的完全二叉树,满足堆性质:

  • 小根堆: 每个节点的值 ≤ 其子节点的值(根最小)
  • 大根堆: 每个节点的值 ≥ 其子节点的值(根最大)

堆通常用数组存储,索引从 1 开始:父节点 = i/2,左子 = 2i,右子 = 2i+1。

📌 核心操作

pushUp(上浮): 当插入新元素或某个节点值变小后,从该节点开始,与父节点比较,若违反堆性质则交换,直到满足堆性质。

pushDown(下沉): 当删除根节点或某个节点值变大后,从该节点开始,与子节点比较,若违反堆性质则与较小的子节点交换(小根堆),直到满足堆性质。

pushUp 和 pushDown 是维护堆性质的两个基本操作,时间复杂度均为 O(log n)。

📊 堆结构 (节点值 / 索引)

📝 当前步骤 0 / 0
点击「插入」或「删除最小」开始演示

📋 操作历史

🟦 当前步骤  |  🟡 比较  |  🟧 交换  |  🟢 完成
✅ 操作完成! 堆性质已恢复