// 28.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include<iostream>
using namespace std;
void swap(int &a,int & b)
{
int temp = a;
a = b;
b = temp;
}
void adjustHeap(int A[],int i)
{
for(int j = i/2;j >= 1;j --)
{
if(A[j] < A[2*j])
swap(A[j] , A[2*j]);
if((2*j + 1 <= i) && A[j] < A[2*j + 1])
swap(A[j],A[2*j + 1]);
}
if( i > 1)
swap(A[1],A[i]);
}
void HeapSort(int A[],int n)
{
if(n <= 1)
return;
for(int i = n - 1;i >= 1;i --)
adjustHeap(A,i);
}
int main(int argc, char* argv[])
{
int A[10] = {0,5,9,2,4,1,2,7,3,10};
HeapSort(A,10);
for(int i = 1 ;i < 10 ;i ++)
cout<<A[i]<<" ";
cout<<endl;
return 0;
}