#include<iostream>
using namespace std;
void adjustHeap(int *a,int i,int n)
{
int ch,tmp;
while(i*2+1<n)
{
ch=i*2+1;
if(ch+1<n&&a[ch]<a[ch+1])
ch+=1;
if(a[i]<a[ch])
{
tmp=a[i];
a[i]=a[ch];
a[ch]=tmp;
i=ch;
}
else
break;
}
}
void heapSort(int *a,int n)
{
int tmp,i;
for(i=n/2-1;i>=0;i--)
{
adjustHeap(a,i,n);
}
i=n-1;
do
{
tmp=a[i];
a[i]=a[0];
a[0]=tmp;
adjustHeap(a,0,i--);
}
while(i>0);
}
int main()
{
int a[10]={1,2,3,4,5,6,72,8,9,0};
heapSort(a,10);
for(int i=0;i<10;i++)
cout<<a[i]<<' ';
cout<<endl;
return 0;
}