Pagini recente » Autentificare | Monitorul de evaluare | Monitorul de evaluare | Istoria paginii runda/aaa/clasament | Cod sursa (job #371986)
Cod sursa(job #371986)
#include <cstdio>
#include <algorithm>
using namespace std;
int N,x[500005];
void sort(int l,int r)
{
int i=l,j=r,k=x[(l+r)/2];
do
{
while (x[i]<k) ++i;
while (x[j]>k) --j;
if (i<=j)
{
if (i<j && x[i]>x[j])
{
int aux=x[i];
x[i]=x[j];
x[j]=aux;
}
++i;--j;
}
}
while(i<=j);
if (l<j) sort(l,j);
if (i<r) sort(i,r);
}
int main()
{
int i;
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
scanf("%d",&N);
for (i=1;i<=N;++i) scanf("%d",&x[i]);
sort(1,N);
for (i=1;i<=N;++i) printf("%d ",x[i]);
return 0;
}