堆排序(heap_sort)
生活随笔
收集整理的這篇文章主要介紹了
堆排序(heap_sort)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、學習要點:
1.什么是堆?
a.完全二叉樹;
b.子樹滿足根節點數值小于左右子節點數值,為最小堆;滿足根節點數值大于左右子節點數值,為最大堆;
2.怎么維護堆的結構:
a.每一個子樹都應該維護堆結構;
b.自下而上維護堆的結構;【(5,6,3,7,8)至上而下的維護,不能將最大的值放到最前頭;】
3.堆排序:
不斷的構建完整的堆結構;將最大的元素arr[0]與arr[size-1]進行交換;對交換后的arr[size-1]在構建堆結構;將最大的元素arr[0]與arr[size-2]進行交換,重復進行。
二、代碼:
三、運行結果:
總結
以上是生活随笔為你收集整理的堆排序(heap_sort)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 快速排序(quick sort)
- 下一篇: 多线程、多进程、互斥锁