堆排序基本資訊

堆排序是基於比較的二進位制堆資料結構排序技術。它類似於選擇排序,我們首先找到最大元素並將其放在資料結構的末尾。然後對剩餘的專案重複相同的過程。

堆排序的虛擬碼:

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

堆排序示例:

StackOverflow 文件

輔助空間: O(1)
時間複雜度: O(nlogn)