Heap Sort

1/0
1.0x

Heap Sort

O(n log n)Space: O(1)

Pseudocode

1procedure heapSort(A)
2 buildMaxHeap(A)
3 for i ← n-1 downto 1 do
4 swap A[0] and A[i]
5 heapify(A, 0, i)
6procedure heapify(A, i, size)
7 largest ← i
8 left ← 2*i + 1
9 right ← 2*i + 2
10 if left < size and A[left] > A[largest]
11 largest ← left
12 if right < size and A[right] > A[largest]
13 largest ← right
14 if largest ≠ i then
15 swap A[i] and A[largest]
16 heapify(A, largest, size)