Cod sursa(job #809521)

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

void qsort(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 (i < j) swap (v[i], v[j]);
	}
	
	if (st < j - 1) qsort (st, j - 1);
	if (dr > i + 1) qsort (i + 1, 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(1, n);
	for(int i = 1; i <= n; i++) printf("%d ", v[i]);
}