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