初始化为大顶堆

初始化 
方法1:插入法: 
  从空堆开始,依次插入每一个结点,直到所有的结点全部插入到堆为止。 
  时间:O(n*log(n)) 
  方法2:调整法: 
    序列对应一个完全二叉树;从最后一个分支结点(n div 2)开始,到根(1)为止,依次对每个分支结点进行调整(下沉),
以便形成以每个分支结点为根的堆,当最后对树根结点进行调整后,整个树就变成了一个堆。 
  时间:O(n) 
对如图的序列,要使其成为堆,我们从最后一个分支结点(10/2),其值为72开始,依次对每个分支节点53,18,36 45进行调整(下沉). 
 
 

 

调整为大顶堆到此结束(小顶堆亦是如此),千万不要把堆排序的部分和这部分混为一谈(我就是先看的堆排序再学习的初始化为大顶堆)

posted @ 2020-07-23 12:07  洪豆豆的记录  阅读(1619)  评论(0编辑  收藏  举报