#include <iostream>
#include <algorithm>
using namespace std;
void maxHeapify(int arr[],int start,int end){
int dad=start;
int son=dad*2+1;
while(son<=end){
if(son+1<=end&&arr[son]<arr[son+1]){
son++;
}
if(arr[dad]>arr[son]){
return;
}
else{
swap<int>(arr[dad],arr[son]);
dad=son;
son=dad*2+1;
}
}
}
void heapSort(int arr[],int len){
for(int i=len/2-1;i>=0;i--){
maxHeapify(arr,i,len-1);
}
for(int i=len-1;i>0;i--){
swap(arr[0],arr[i]);
maxHeapify(arr,0,i-1);
}
}
int main(){
int arr[]={9,6,8,2,5,7};
int len=int(sizeof(arr)/sizeof(*arr));
heapSort(arr,len);
cout << "排序后:" << endl;
for(auto item:arr){
cout << item << " ";
}
return 0 ;
}