Cod sursa(job #263894)

Utilizator cvicentiuCiorbaru Vicentiu Marian cvicentiu Data 20 februarie 2009 22:08:15
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <stdio.h>
#define fin "algsort.in"
#define fout "algsort.out"
#define MaxN 500001
int n;
int v[MaxN];
void quicksort(int inf,int sup){
	if (inf<sup){
	int aux,pivot=v[inf];
	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("%d",&v[i]);
	quicksort(1,n);
	for (int i=1;i<=n;i++)
		printf("%d ",v[i]);
}