#include <stdio.h>
void HeapAdjust(int Heap[],int k ,int len){
Heap[0] = Heap[k];
for(int i=2*k;i <= len;i*=2){
if(i < len && Heap[i] < Heap[i+1])
i++;
if(Heap[0] > Heap[i])
break;
else{
Heap[k] = Heap[i];
k = i;
}
}
Heap[k] = Heap[0];
}
void BulidMaxHeap(int Heap[],int len){
for(int i = len/2;i>0;i--)
HeapAdjust(Heap,i,len);
}
void display(int Heap[],int len){
for(int i =1;i <= len;i++){
printf("%d ",Heap[i]);
}
}
int main(){
int Heap[] = {0,9,15,30,44,32,50,60};
int len = sizeof(Heap) / sizeof(int) - 1;
BulidMaxHeap(Heap,len);
display(Heap,len);
return 0;
}