『算法設計_僞代碼』斐波那契堆

1、堆結構

由一組最小堆有序樹組成,每一個節點有key值、四個指針(parent,child,left,right)、兩個屬性(是否被標記,degree)組成,堆對象有兩個屬性:H.min(有序樹roots中最小的那個),H.n(總節點數)函數

任何節點的degree不大於lgn向下取整性能

2、勢能函數

由樹的個數、被標記節點數肯定spa

3、堆操做

一、初始化

因爲勢能變化爲0,因此平攤代價等於實際代價3d

二、插入操做

PPT上未顯式指定左右指針值,應該包含在list操做中指針

這個插入操做僅僅插入新的樹,代價依然是線性的對象

三、尋找最小節點

四、合併不一樣堆

合併root鏈表,修改堆的min和n值blog

五、抽取最小值

 示意:遞歸

 

 

六、節點key值減少後調整

將被減少節點去mask後添加到root,根據其父節點是否mask決定是否遞歸向上操做性能分析

 

性能分析:im

七、刪除節點

修改成負無窮調整,抽取最小值

相關文章
相關標籤/搜索