初始堆就是大根堆,只是是第一次(初始序列)調整,第一次必須是自底向上逐個調整,以后(第一次交換后)是自上向下調整(因為除了第一個即堆頂元素,其他都是已經調整好的堆)。過程:
先把數據畫出一顆二叉樹:
40
30 92
16 20 47 25
56 55 35
從最后一個數據的雙親(20)開始,數據最大的成為雙親
20和35交換;下一個雙親(16),16和56交換;
雙親92不動;結果如下
40
30 92
56 35 47 25
16 55 20
雙親30,相對麻煩些:首先是30和56交換,然后再交換30和55,結果:
40
56 92
55 35 47 25
16 30 20
最后是雙親40(根);首先40和92交換,然后40和47交換,結果就是調整好的大頂堆:
92
56 47
55 35 40 25
16 30 20
即:{92,56,47,55,35,40,25,16,30,20}