Pagini recente » Cod sursa (job #928398) | Cod sursa (job #1868033) | Cod sursa (job #1367381) | Cod sursa (job #1099132) | Cod sursa (job #273161)
Cod sursa(job #273161)
#include<fstream.h>
#define max 500005
ifstream f("algsort.in");
ofstream g("algsort.out");
long i,n,a[max],poz[max];
void down(int k)
{
long t=2*k,aux;
while(t<=n)
{
if(t<n && a[t+1]<a[t]) t++;
if(a[k]>a[t])
{
aux=a[t];
a[t]=a[k];
a[k]=aux;
k=t;
t=2*k;
}
else break;
}
}
void up(int k)
{
long aux;
while(k>=1 && a[k]<a[k/2])
{
aux=a[k/2];
a[k/2]=a[k];
a[k]=aux;
k=k/2;
}
}
int main()
{ long x,i;
f>>n;
for(i=1;i<=n;i++)
f>>x,a[i]=x,up(i);
while(n)
{
g<<a[1]<<" ";
a[1]=a[n],n--;
down(1);
}
f.close();
g.close();
return 0;
}