Cod sursa(job #263912)

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