Heap sort bouwt een binary heap uit de array, haalt vervolgens herhaaldelijk het maximum uit om gesorteerde volgorde te produceren. Het draait in O(n log n) en is in-place.
Het idee
Een max-heap houdt het grootste element aan de wortel. Bouw de heap (O(n)), verwissel vervolgens de wortel naar het einde, verklein de heap en herpelletiseer (sift down) — n keer.
Voorbeeld
heapq
():
heapq.heapify(arr)
[heapq.heappop(arr)
_ ((arr))]
heap_sort([, , , , ])
