//MaxHeap_Sort
int Adjust_MaxHeap(int *str, int i, int n) {
int lChild = 2 * i + 1;
int rChild = 2 * i + 2;
int largest = i;
if(lChild <= n && a[lChild] > a[i]) {
largest = a[lChild];
}
if(rChild <= n && a[rChild] > a[largest]) {
largest = a[rChild];
}
if(largest != i) {
swap(&str[i], &str[largest]) ;
Adjust_MaxHeap(str, largest, n);
}
}
int MaxHeap_Sort(int *nArray, int n) {
for(int i = n / 2; i >= 0; i--) {
Adjust_MaxHeap(nArray, i, n);
}
for(int i = n - 1; i >= 0; i--) {
swap(&nArray[0]], &nArray[i]);
}
}