Heap sort는 배열로부터 **binary heap(이진 힙)**을 만든 뒤, 최댓값을 반복적으로 추출하여 정렬된 순서를 만들어 냅니다. **O(n log n)**으로 동작하며 제자리 정렬입니다.
개념
max-heap은 가장 큰 원소를 루트에 유지합니다. 힙을 만들고(O(n)), 루트를 끝으로 교환하고, 힙을 줄이고, 다시 힙으로 만드는(sift down) 작업을 n번 수행합니다.
예시
python
heapq
():
heapq.heapify(arr)
[heapq.heappop(arr)
_ ((arr))]
heap_sort([, , , , ])
