Heap sort 从数组构建一个 binary heap,然后反复提取最大值以产生排序顺序。它在 O(n log n) 时间运行,且是 in-place。
思想
max-heap 将最大元素保持在根部。构建堆(O(n)),然后将根交换到末尾,缩小堆,并重新堆化(sift down)— 重复 n 次。
例子
python
heapq
():
heapq.heapify(arr)
[heapq.heappop(arr)
_ ((arr))]
heap_sort([, , , , ])
