Pagini recente » Cod sursa (job #1796623) | Cod sursa (job #1599042) | Cod sursa (job #1023396) | Cod sursa (job #1341479) | Cod sursa (job #1856268)
#include <bits/stdc++.h>
using namespace std;
ifstream inf("algsort.in");
ofstream outf("algsort.out");
void heap_down(int, int);
int n, t, m, i, k, y, pos, a[500010];
int main()
{
inf>>n;
for(i=1; i<=n; i++)
inf>>a[i];
for(i=n/2; i>=1; i--)
heap_down(i,n);
for(i=n; i>=1; i--)
{
swap(a[1],a[i]);
heap_down(1, i-1);
}
for(i=1; i<=n; i++)
outf<<a[i]<<' ';
return 0;
}
void heap_down(int tata, int lg)
{
int fiu=2*tata;
if(fiu>lg)
return;
if(fiu<lg&&a[fiu+1]>a[fiu])
fiu++;
if(a[fiu]>a[tata])
{
swap(a[tata], a[fiu]);
heap_down(fiu, lg);
}
}