注意,从1开始。
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
int n;
void dui(int k,int a[])
{
int i=k,j=i*2;
int item=a[i];
while(j<=n)
{
if(j<n && a[j]>a[j+1])
{
j++;
}
if(item>a[j])
{
a[i]=a[j];
i=j;
j=i*2;
}
else break;
}
a[i]=item;
}
int main()
{
int i,a[1005];
cin>>n;
for(i=1;i<=n;i++)
cin>>a[i];
for(i=n/2;i>=1;i--)
dui(i,a);
for(i=1;i<=n;i++)
cout<<a[i]<<" ";
return 0;
}