堆排序基本資訊
堆排序是基於比較的二進位制堆資料結構排序技術。它類似於選擇排序,我們首先找到最大元素並將其放在資料結構的末尾。然後對剩餘的專案重複相同的過程。
堆排序的虛擬碼:
function heapsort(input, count)
heapify(a,count)
end <- count - 1
while end -> 0 do
swap(a[end],a[0])
end<-end-1
restore(a, 0, end)
function heapify(a, count)
start <- parent(count - 1)
while start >= 0 do
restore(a, start, count - 1)
start <- start - 1
堆排序示例:
輔助空間: O(1)
時間複雜度: O(nlogn)