parent
45776364a9
commit
b2d713b278
@ -0,0 +1,29 @@
|
||||
#include<stdio.h>
|
||||
int n,num[1000010];
|
||||
void down(int x)
|
||||
{
|
||||
int y=x;
|
||||
if(x*2<=n&&num[x*2]<num[y]) y=x*2;
|
||||
if(x*2+1<=n&&num[x*2+1]<num[y]) y=x*2+1;
|
||||
if(y!=x)
|
||||
{
|
||||
int a=num[x];
|
||||
num[x]=num[y];
|
||||
num[y]=a;
|
||||
down(y);
|
||||
}
|
||||
}
|
||||
int main()
|
||||
{
|
||||
scanf("%d",&n);
|
||||
for(int i=1;i<=n;i++)
|
||||
scanf("%d",&num[i]);
|
||||
for(int i=n/2;i;i--) down(i);
|
||||
while(n)
|
||||
{
|
||||
printf("%d ",num[1]);
|
||||
num[1]=num[n--];
|
||||
down(1);
|
||||
}
|
||||
return 0;
|
||||
}
|
Loading…
Reference in new issue