Pagini recente » Cod sursa (job #262091) | Cod sursa (job #1279684) | Cod sursa (job #2842931) | Cod sursa (job #103928) | Cod sursa (job #2230797)
#include<bits/stdc++.h>
using namespace std;
int h[1000001];
void fa_l(int i,int n,int h[])
{
int maxi=i;
if(i*2<=n && h[maxi]<h[i*2])
maxi=i*2;
if(i*2+1<=n && h[maxi]<=h[i*2+1])
maxi=i*2+1;
if(i!=maxi)
{
swap(h[maxi],h[i]);
fa_l(maxi,n,h);
}
}
int main()
{
int n;
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
scanf("%d",&n);
for(int i=1;i<=n;++i)
scanf("%d",&h[i]);
for(int i=n/2;i>=1;--i)
fa_l(i,n,h);
for(int i=n;i>=1;--i)
{
swap(h[1],h[i]);
fa_l(1,i-1,h);
}
for(int i=1;i<=n;++i)
printf("%d ",h[i]);
}