Cod sursa(job #542149)

Utilizator vladtarniceruVlad Tarniceru vladtarniceru Data 25 februarie 2011 20:52:39
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
# include <stdio.h>
long a[500010], n, i;
void qs (long a[], long st, long dr){
	long i = st, j = dr, m = a[(st + dr) >> 1];
	do {
		while (a[i] < m) ++i;
		while (a[j] > m) --j;
		if (i <= j){
			int x = a[i];
			a[i] = a[j];
			a[j] = x; 
			++i;
			--j;
		}
	} while (i <= j);
	if (st < j) qs (a, st, j);
	if (i < dr) qs (a, i, dr);
}
int main (){
	freopen ("algsort.in", "r", stdin);
	freopen ("algsort.out", "w", stdout);
	scanf ("%ld", &n);
	for (i = 1; i <= n; ++i)
		scanf ("%ld", &a[i]);
	qs (a, 1, n);
	for (i = 1; i <= n; ++i)
		printf ("%ld ", a[i]);
	return 0;
}