Pagini recente » Cod sursa (job #602603) | Cod sursa (job #1843332) | Cod sursa (job #894593) | Cod sursa (job #3036674) | Cod sursa (job #273159)
Cod sursa(job #273159)
#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;
}