Pagini recente » Cod sursa (job #1406338) | Cod sursa (job #3038297) | Cod sursa (job #2116623) | Cod sursa (job #3243461) | Cod sursa (job #505398)
Cod sursa(job #505398)
#include <stdio.h>
void qsort (long*,long,long);
void swap (long*,long,long);
long partition (long*,long,long);
int main () {
long a[500010],i,n;
freopen ("algsort.in","r",stdin);
freopen ("algsort.out","w",stdout);
scanf ("%ld",&n);
for (i=0; i<n; i++) scanf ("%ld",a+i);
qsort (a,0,n);
for (i=0; i<n-1; i++) printf ("%ld ",a[i]);
printf ("%ld\n",a[n-1]);
return 0;
}
void qsort (long *a,long l,long r) {
if (l<r) {
int k=partition (a,l,r);
qsort (a,l,k);
qsort (a,k+1,r);
}
}
void swap (long *a,long x,long y) {
}
long partition (long *a,long l,long r) {
long p=l,q,z;
z=a[(l+r)/2]; a[(l+r)/2]=a[r-1]; a[r-1]=z;
for (q=l; q<r-1; q++)
if (a[q]<a[r-1]) {
z=a[p]; a[p]=a[q]; a[q]=z;
p++;
}
z=a[p]; a[p]=a[r-1]; a[r-1]=z;
return p;
}