Cod sursa(job #809504)

Utilizator mihaibogdan10Mihai Bogdan mihaibogdan10 Data 8 noiembrie 2012 16:44:28
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include<cstdio>
#include<algorithm>
using namespace std;
int n, v[1<<21];

void qsort(int v[], int st, int dr) {
	int i = st, j = dr, pivot = v[i + rand() % (j - i)];
	
	while (i < j) {
		while (v[i] < pivot) ++i;
		while (v[j] > pivot) --j;
		if (v[i] == v[j]) break;
		if (i < j) swap (v[i], v[j]);
	}
	if (st < j) qsort (v, st, j);
	if (dr > i) qsort (v, i, dr);
}

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