Pagini recente » Cod sursa (job #2757099) | Cod sursa (job #1975498) | Cod sursa (job #1212538) | Cod sursa (job #1354687) | Cod sursa (job #1868727)
#include <bits/stdc++.h>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int n,v[500010];
void heap_down(int,int);
int main()
{
f>>n;
srand(time(0));
for(int i=1;i<=n;i++)
f>>v[i];
for(int i=n/2;i>=1;i--)
heap_down(i,n);
for(int i=n;i>=1;i--)
{
swap(v[1],v[i]);
heap_down(1,i-1);
}
for(int i=1;i<=n;i++)
g<<v[i]<<' ';
return 0;
}
void heap_down(int tata,int lheap)
{
int fiu=2*tata;
if(fiu>lheap)
return;
if(fiu<lheap)
if(v[fiu]<v[fiu+1])
fiu++;
if(v[fiu]>v[tata])
{
swap(v[fiu],v[tata]);
heap_down(fiu,lheap);
}
}