Pagini recente » Cod sursa (job #2464710) | Cod sursa (job #1626039) | Cod sursa (job #2822062) | Cod sursa (job #3134391) | Cod sursa (job #265658)
Cod sursa(job #265658)
#include<stdio.h>
long n;
long v[5050];
long partit(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 st, long dr)
{
long p;
if(st<dr)
{
p=partit(st,dr);
quicks(st,p);
quicks(p+1,dr);
}
}
int main()
{
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
scanf("%ld",&n);
long i;
for(i=1;i<=n;i++)
scanf("%ld",&v[i]);
quicks(1,n);
for(i=1;i<=n;i++)
printf("%ld ",v[i]);
return 0;
}