初始化
方法1:插入法:
從空堆開始,依次插入每一個結點,直到所有的結點全部插入到堆為止。
時間:O(n*log(n))
方法2:調整法:
序列對應一個完全二叉樹;從最后一個分支結點(n div 2)開始,到根(1)為止,依次對每個分支結點進行調整(下沉),
以便形成以每個分支結點為根的堆,當最后對樹根結點進行調整后,整個樹就變成了一個堆。
時間:O(n)
對如圖的序列,要使其成為堆,我們從最后一個分支結點(10/2),其值為72開始,依次對每個分支節點53,18,36 45進行調整(下沉).
調整為大頂堆到此結束(小頂堆亦是如此),千萬不要把堆排序的部分和這部分混為一談(我就是先看的堆排序再學習的初始化為大頂堆)