Cod sursa(job #615189)

Utilizator d.andreiDiaconeasa Andrei d.andrei Data 8 octombrie 2011 21:04:45
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <cstdio>

#define Nmax 501010

#define file_in "algsort.in"
#define file_out "algsort.out"

int N,V[Nmax],i,min,j,k;

void qsort(int left, int right){
	
	int i=left;
	int j=right;
	int middle=V[(left+right)/2];
	int aux;
	
	do
	{
		while((V[i]<middle) && (i<N)) ++i;
		while((V[j]>middle) && (j>1)) --j;
		
		if (i<=j){
			
			aux=V[i];
			V[i]=V[j];
			V[j]=aux;
			++i;
			--j;
		}
	}
	while(i<=j);
	
	if (left<j)
		qsort(left,j);
	if (i<right)
	    qsort(i,right);
}
	

int main(){
	
	freopen(file_in,"r",stdin);
	freopen(file_out,"w",stdout);
	
	
	scanf("%d", &N);
	
	for (i=1;i<=N;++i) 
		scanf("%d", &V[i]);
	
	
	qsort(1,N);
	
	for (i=1;i<=N;++i) printf("%d ", V[i]);
	
	return 0;
}