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.
