Pagini recente » Cod sursa (job #2893764) | Cod sursa (job #164856) | Cod sursa (job #756976) | Runda 3 preONI 2007 | Cod sursa (job #330844)
Cod sursa(job #330844)
#include<stdio.h>
long v[500010],n;
long part(long st, long dr)
{
long i,j,pivot,aux,m;
m=(st+dr)/2;
pivot=v[m];
i=st-1;j=dr+1;
while(1)
{
do{++i;} while(v[i]<pivot);
do{--j;} while(v[j]>pivot);
if(i<j)
{
aux=v[i];
v[i]=v[j];
v[j]=aux;
}
else return j;
}
}
void quicks(long st, long dr)
{
long p;
if(st<dr)
{
p=part(st,dr);
quicks(st,p);
quicks(p+1,dr);
}
}
int main()
{
long i;
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
scanf("%ld",&n);
for(i=1;i<=n;++i)
scanf("%ld",&v[i]);
quicks(1,n);
for(i=1;i<=n;++i) printf("%ld ",v[i]);
printf("\n");
return 0;
}