初始化為大頂堆


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

 

調整為大頂堆到此結束(小頂堆亦是如此),千萬不要把堆排序的部分和這部分混為一談(我就是先看的堆排序再學習的初始化為大頂堆)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM