#include <iostream.h>
#include <stdio.h>
void sift(int R[],int low,int high){
int i=low,j=2*i;
int temp=R[i];
while (j<=high){
if (j<high&&R[j]<R[j+1])
j++;
if (temp<R[j]){
R[i]=R[j];
i=j;
j=2*i;
}
else break;
}
R[i]=temp;
}
void HeapSort(int R[],int n){
int i;
int temp;
for (i=n/2;i>=1;i--)
sift(R,i,n);
for (i=n;i>=2;i--){
temp=R[1];
R[1]=R[i];
R[i]=temp;
sift(R,1,i-1);
}
}
void main(){
int r[]={0,5,6,7,8,1,4,3,2,0,9};
HeapSort(r,10);
for(int i=1;i<=10;i++)
cout<<r[i]<<" ";
}