最小堆是什么

最小堆(Min Heap)是一種特殊的完全二叉樹,它同時滿足堆和二叉堆的特性。在最小堆中,每個父節點的值都不大於其子節點(左子節點和右子節點)的值,這意味著堆的最小值總是在堆的根節點。

最小堆的特性:

  1. 父節點的值不小於其子節點的值。
  2. 完全二叉樹,這意味著除了最底層外,其他層都是滿的,且最底層上的節點都儘可能地向左排列。
  3. 最小堆的根節點是整個堆的最小值。

最小堆的插入和刪除操作的時間複雜度都是O(log n),其中n是堆中元素的數量。這種高效的插入和刪除操作使得最小堆成為一種非常有用的數據結構,常用於實現優先佇列、調度算法和許多其他算法中。

最小堆可以通過數組或二叉樹表示,其中數組表示是最常用的實現方式,因為它支持高效的插入和刪除操作。在數組表示中,每個父節點和子節點的關係可以通過簡單的計算得出,這使得最小堆的操作非常高效。