Heap sort construiește un heap binar din matrice, apoi extrage în mod repetat maximul pentru a produce ordine sortată. Funcționează în O(n log n) și este in-place.
Ideea
Un max-heap ține cel mai mare element la rădăcină. Construiți heap-ul (O(n)), apoi schimbați rădăcina cu sfârșitul, micșorați heap-ul și re-heapify (sift down) — de n ori.
Exemplu
heapq
():
heapq.heapify(arr)
[heapq.heappop(arr)
_ ((arr))]
heap_sort([, , , , ])
