Heap sort constrói um heap binário a partir da matriz, depois extrai repetidamente o máximo para produzir ordem classificada. Funciona em O(n log n) e é in-place.
A ideia
Um max-heap mantém o maior elemento na raiz. Construa o heap (O(n)), depois troque a raiz pelo final, reduza o heap e re-heapify (sift down) — n vezes.
