close

考完第二次小考打算來打個Heap Array 版的

就是Heap數字裡在Array情形 (人眼看是tree,電腦看是array)

和child中比較大的交換,A(h)的child分別是A(2h), A(2h+1)

擷取  (例題圖)

1   2  3  4 5 

48 37 26 15 4 

 

取出 48拿最後一個數字4替補

1  2  3  4 5

4 37 26 15

擷取  

第一個數字的child是2號和3號(2h,2h+1)

4<37 所以4和37交換

1  2 3  4 5

37 4 26 15

擷取  

4再和它的小孩交換也就是4號15

1   2  3 4 5

37 15 26 4

擷取  

接著輸出37

一樣拿最後一個取代

1 2  3 4 5

4 15 26

擷取  

26比15大,所以和26交換

1  2  3 4 5

26 15 4

擷取   

 

接著輸出26

1 2 3 4 5

4 15

擷取  

4<15交換

輸出15

剩4

最後輸出4,結束

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 cc08310112tw 的頭像
    cc08310112tw

    墨墨喵喵喵

    cc08310112tw 發表在 痞客邦 留言(0) 人氣()