Cod sursa(job #645655)

Utilizator sebii_cSebastian Claici sebii_c Data 10 decembrie 2011 02:39:28
Problema Sortare prin comparare Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 0.6 kb
#include <stdio.h>
#define NMAX 500000 

int v[NMAX + 5];

void swap(int i, int j)
{
	int aux = v[i];
	v[i] = v[j];
	v[j] = aux;
}

void quicksort(int l, int u)
{
	int i, m;
	if (l >= u) return;
	m = l;
	for (i = l + 1; i <= u; ++i)
		if (v[i] < v[l])
			swap(++m, i);
	swap(m, l);
	quicksort(l, m - 1);
	quicksort(m + 1, u);
}

int main()
{
	freopen("quicksort.in", "r", stdin);
	freopen("quicksort.out", "w", stdout);
	int i, n;
	scanf("%d", &n);
	for (i = 1; i <= n; ++i)
		scanf("%d", &v[i]);
	quicksort(1, n);
	for (i = 1; i <= n; ++i)
		printf("%d ", v[i]);
	return 0;
}