🎯 什麼情境該想到我

當你「要反覆取出目前最大/最小值(優先佇列)時」的時候。

⚙️ 怎麼用(步驟 / 公式)

  • 思路:完全二元樹用陣列表示,父 ≤/≥ 子(最小/最大堆)。
  • 複雜度:取極值 O(1)、插入/取出 O(log n)、建堆 O(n)。
  • 插入 sift-up、取出把尾端移到頂再 sift-down。

🧪 我實際套用的紀錄

  • (待填)

⚠️ 注意 / 什麼時候不適用

  • 不支援高效查找任意元素;那需要索引堆或別的結構。

🔗 相關工具