Heap sort bygger en binær heap fra arrayet, og henter derefter gentagne gange det maksimale element for at producere sorteret rækkefølge. Det kører i O(n log n) og er in-place.
Ideen
En max-heap holder det største element i roden. Byg heapen (O(n)), byt derefter roden til slutningen, formindsk heapen, og re-heapify (sift down) — n gange.
Eksempel
heapq
():
heapq.heapify(arr)
[heapq.heappop(arr)
_ ((arr))]
heap_sort([, , , , ])
