Heap sort bygger en binary heap fra arrayen, og trekker deretter gjentatte ganger ut maksimum for å produsere sortert rekkefølge. Det kjører i O(n log n) og er in-place.
Ideen
En max-heap holder det største elementet ved roten. Bygg heapen (O(n)), bytt deretter roten til enden, krympe heapen, og re-heapify (sift down) — n ganger.
Eksempel
heapq
():
heapq.heapify(arr)
[heapq.heappop(arr)
_ ((arr))]
heap_sort([, , , , ])
