Pagini recente » Cod sursa (job #1802990) | Cod sursa (job #532151) | Cod sursa (job #1828750) | Cod sursa (job #393994) | Cod sursa (job #304451)
Cod sursa(job #304451)
#include <stdio.h>
#define fin "algsort.in"
#define fout "algsort.out"
#define MaxN 500001
unsigned int v[500001],n;
void qsort(unsigned int p,unsigned int q){
unsigned int st=p,dr=q,x=v[(p+q)>>1];
v[(p+q)>>1]=v[p];
v[p]=x;
while (st<dr){
while (st<dr && v[dr]>=x) dr--;
v[st]=v[dr];
while (st<dr && v[st]<=x) st++;
v[dr]=v[st];
}
v[st]=x;
if (st-1>p) qsort(p,st-1);
if (st+1<q) qsort(st+1,q);
}
int main(){
freopen(fin,"r",stdin);
freopen(fout,"w",stdout);
scanf("%d",&n);
for (unsigned int i=1;i<=n;i++)
scanf("%ld",&v[i]);
qsort(1,n);
for (unsigned int i=1;i<=n;i++)
printf("%ld ",v[i]);
}