堆:堆的結構與應用,最小堆和最大堆入門

堆是一種特殊的完全二叉樹,核心特點是父節點與子節點滿足大小關係(最小堆父≤子,最大堆父≥子),能高效獲取極值(堆頂爲最小或最大元素),類似優先隊列。其底層爲完全二叉樹,每一層儘量填滿,最後一層從左到右排列。數組存儲時,左子節點索引=2i+1,右子節點=2i+2,父節點=(i-1)//2。基本操作包括插入(末尾添加後上浮)和刪除(堆頂刪除後尾元素頂替,再下沉),時間複雜度均爲O(log n)。堆廣泛用於優先隊列(任務調度)、找第k大元素、哈夫曼編碼等場景,是高效處理極值問題的關鍵結構。

閱讀全文