Pagini recente » Cod sursa (job #1299410) | Cod sursa (job #101220) | Cod sursa (job #2301296) | Cod sursa (job #416187) | Cod sursa (job #1041788)
#include<cstdio>
#include<algorithm>
using namespace std;
int i, n, a[500005];
void heap_up(int k) {
if (a[k]<a[k/2]) {
swap(a[k], a[k/2]);
if (k>1) heap_up(k/2);
}
}
int main()
{
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
scanf("%d", &n);
for (i=1;i<=n;i++) {
scanf("%d", &a[i]);
if (i>1) heap_up(i);
}
for (i=1;i<=n;i++) {
printf("%d ", a[i]);
if (2*i+1<=n)
if (a[2*i]>a[2*i+1]) swap(a[2*i], a[2*i+1]);
}
printf("\n"); return 0;
}