算法與數據結構學習(39)-樹結構的實際應用

堆排序

1.堆排序基本介紹

1.堆排序是利用堆這種數據結構而設計的一種排序算法,堆排序是一種選擇排序,它的最壞,最好,平均時間複雜度均爲O(nlogn),它也是不穩定排序。

2.堆是具有以下性質的完全二叉樹:每個結點的值都大於或等於其左右孩子結點的值,稱爲大頂堆, 注意 : 沒有要求結點的左孩子的值和右孩子的值的大小關係。

3.每個結點的值都小於或等於其左右孩子結點的值,稱爲小頂堆

4.大頂堆舉例說明
在這裏插入圖片描述
映射到數組裏面是這個樣子:
在這裏插入圖片描述
大頂堆特點
arr[i] >= arr[2i+1] && arr[i] >= arr[2i+2] // i 對應第幾個節點,i從0開始編號

5.小頂堆舉例說明
在這裏插入圖片描述
小頂堆特點:
arr[i] <= arr[2i+1] && arr[i] <= arr[2i+2] // i 對應第幾個節點,i從0開始編號

6.一般升序採用大頂堆,降序採用小頂堆

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