Heap sort строит бинарную кучу из массива, затем многократно извлекает максимум для получения отсортированного порядка. Работает за O(n log n) и является in-place.
Идея
Макс-куча держит наибольший элемент в корне. Постройте кучу (O(n)), затем поменяйте корень на конец, уменьшите кучу и восстановите кучу (sift down) — n раз.
