Cod sursa(job #263918)

Utilizator cvicentiuCiorbaru Vicentiu Marian cvicentiu Data 20 februarie 2009 22:44:20
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include <stdio.h>
#define fin "algsort.in"
#define fout "algsort.out"
#define MaxN 500001
unsigned int v[500001],n;   
  
void qsort(long l, long r)      
{      
 long i,j,x,y;      
 i=l;      
 j=r;      
 x=v[(l+r)>>1];      
 do      
    {      
    while ((v[i]<x)&&(i<r)) ++i;      
    while ((x<v[j])&&(j>l)) --j;      
    if (i<=j)      
        {      
        y=v[i];      
        v[i]=v[j];      
        v[j]=y;      
        ++i;      
        --j;      
        }      
    }      
 while (i<=j);      
 if (l<j) qsort(l,j);      
 if (i<r) qsort(i,r);      
}    
int main(){
	freopen(fin,"r",stdin);
	freopen(fout,"w",stdout);
	scanf("%d",&n);
	for (int i=1;i<=n;i++)
		scanf("%ld",&v[i]);
	qsort(1,n);
	for (int i=1;i<=n;i++)
		printf("%ld ",v[i]);
}