Cod sursa(job #611191)
#include <stdio.h>
FILE *in,*out;
int n,v[500001];
void qsort(int,int);
void swap(int *a,int *b);
int main(){
int i;
in=fopen("algsort.in","r");
out=fopen("algsort.out","w");
fscanf(in,"%d",&n);
for(i=1;i<=n;i++)fscanf(in,"%d",&v[i]);
qsort(1,n);
for(i=1;i<=n;i++)fprintf(out,"%d ",v[i]);
}
void qsort(int st,int dr){
int i=st,j=dr,mid=v[(i+j)/2];
while(i<j){
while(v[i]<mid)i++;
while(v[j]>mid)j--;
if(i<=j){
swap(&v[i],&v[j]);
i++;j--; };
}
if(i<dr)qsort(i,dr);
if(j>st)qsort(st,j);
}
void swap(int *a,int *b){
int c;
c=*a;
*a=*b;
*b=c;
}