Pagini recente » Cod sursa (job #1895116) | Cod sursa (job #3254021) | Cod sursa (job #1217891) | Cod sursa (job #79123) | Cod sursa (job #243628)
Cod sursa(job #243628)
#include<stdio.h>
int n,k,i,j,d,a[500001];
int divide (int p,int q)
{
int st,dr,x;
st=p;
dr=q;
x=a[p];
while (st<dr)
{
while (st<dr && a[dr]>=x)
--dr;
a[st]=a[dr];
while (st<dr && a[st]<=x)
++st;
a[dr]=a[st];
a[st]=x;
}
return st;
}
int qsort (int p, int q)
{
int m;
m=divide (p,q);
if (m-1>p)
qsort (p,m-1);
if (m+1<q)
qsort (m+1,q);
}
int main ()
{
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
scanf("%d",&n);
for(k=1;k<=n;++k)
{
scanf("%d",&a[k]);
}
qsort(1,n);
for(i=1;i<=n;++i)
printf("%d ",a[i]);
return 0;
}