Pagini recente » Cod sursa (job #818302) | Cod sursa (job #117946) | Cod sursa (job #904362) | Cod sursa (job #152257) | Cod sursa (job #265654)
Cod sursa(job #265654)
#include<stdio.h>
long n,i;
long v[500050];
long partit(long v[], long st, long dr)
{
long i,j,m,piv,a;
m=(st+dr)/2;
piv=v[m];
i=st-1;
j=dr+1;
while(1)
{
do{++i;}while(v[i]<piv);
do{--j;}while(v[j]>piv);
if(i<j)
{
a=v[i];
v[i]=v[j];
v[j]=a;
}
else
return j;
}
}
void quicks(long v[], long st, long dr)
{
long p;
if(st<dr)
{
p=partit(v,st,dr);
quicks(v,st,p);
quicks(v,p+1,dr);
}
}
int main()
{
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
for(i=1;i<=n;i++)
scanf("%ld",&v[i]);
quicks(v,1,n);
for(i=1;i<=n;i++)
printf("%ld ",&v[i]);
return 0;
}