Heap Sort
Heap Sort
BuildMaxHeap(A, n):
for i = floor(n/2) - 1 down to 0 do:
Heapify(A, i, n)
Heapify(A, i, n):
left = 2 * i + 1
right = 2 * i + 2
largest = i
if left < n and A[left] > A[largest]:
largest = left
if largest != i:
swap A[i] with A[largest]
Heapify(A, largest, n)
if (largest!= i)
{ swap(&arr[i], &arr[largest]);
heapify (arr, n, largest);
}
}
void buildMaxHeap(int arr[], int n)
{
// Start from the last non-leaf node and heapify each
node
for (int i = n / 2 - 1; i >= 0; i--) {
heapify(arr, n, i);
}
}
//Function to implement heap sort