Cod sursa(job #260782)

Utilizator blasterzMircea Dima blasterz Data 17 februarie 2009 15:45:20
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <cstdio>

int a[500001];
int n;

inline void swap(int &a, int &b)
{
	int t=a;
	a=b;
	b=t;
}

inline void quick(int l, int r)
{
	if(l >= r) return;
	
	int i=l, j=r, v=a[(i+j)>>1];
	
	do
	{
		while(a[i] < v) ++i;
		while(a[j] > v) --j;
		
		if(i <= j) swap(a[i++], a[j--]);
		
	}while(i <= j);
	
	quick(l, i-1);
	quick(i,r);
}
	
int main()
{
	freopen("algsort.in","r",stdin);
	freopen("algsort.out","w",stdout);
	scanf("%d\n", &n);
	int i;
	for(i=1; i <= n; ++i) scanf("%d ", &a[i]);
			
	quick(1,n);
	
	for(i=1; i <= n; ++i) printf("%d ", a[i]);
	return 0;
}