堆排序的實例化(詳細過程)

數組a[] = {8,10,23,48,7,6,11,13,17,19,20,14,5}在堆(完全二叉樹)中表示爲:
這裏寫圖片描述
一共13個數,在經過大項堆的初始後,數組的首位爲最大值,此時完全二叉樹爲:
這裏寫圖片描述
將48和5對換位置後,得到數組的最後一位爲最大值,此時的完全二叉樹爲:
這裏寫圖片描述
並再次進行大項堆的初始化操作,因爲已經確定數組最後一位爲最大數,所以此時的完全二叉樹爲:

這裏寫圖片描述
將23和5對換位置後,得到數組的倒數第二位23爲第二大值,並再次進行大項堆的初始化操作,如此即可得到最後的排序好的數組:
第一輪:20,19,1417,8,6,11,13,10,5,7,23,48
第二輪:19,17,14,13,8,6,11,7,10,5,20,23,48
第三輪:17,13,14,10,8,6,11,7,5,19,20,23,48
第四輪:14,13,11,10,8,6,5,7,17,19,20,23,48
第五輪:13,10,11,7,8,6,5,14,17,19,20,23,48
第六輪:11,10,6,7,8,5,13,14,17,19,20,23,48
第七輪:10,8,6,7,5,11,13,14,17,19,20,23,48
第八輪:8,7,6,5,10,11,13,14,17,19,20,23,48
第九輪:7,5,6,8,10,11,13,14,17,19,20,23,48
第十輪:6,5,7,8,10,11,13,14,17,19,20,23,48
第十一輪:5,6,7,8,10,11,13,14,17,19,20,23,48 排序結束
最終的完全二叉樹:
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章