HeapSort (using MaxHeap)

Worst Performance O(n log n) Best Performance O(n log n) Average Performance O(n log n)