Heap sort bygger en binär heap från arrayen, extraherar sedan upprepade gånger maximumet för att producera sorterad ordning. Det körs i O(n log n) och är in-place.
Idén
En max-heap behåller det största elementet vid roten. Bygg heapen (O(n)), byt sedan roten till slutet, krympa heapen och re-heapifiera (sift down) — n gånger.
Exempel
heapq
():
heapq.heapify(arr)
[heapq.heappop(arr)
_ ((arr))]
heap_sort([, , , , ])
