Cod sursa(job #1469220)

Utilizator AlexandraaaaMereu Alexandra Alexandraaaa Data 7 august 2015 18:41:23
Problema Sortare prin comparare Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <iostream>
#include <fstream>
#include <time.h>
#include <cstdlib>

using namespace std;

int n, v[500000];

void qqsort(int st, int dr) {
	if (st >= dr)
		return;

	int i = st, j = dr, p, r;
	r = rand() % (dr - st + 1) + st;
	p = v[r];

	while (i < j) {
		while (i <= j && v[i] < p) i++;
		while (j >= i && v[j] > p) j--;
		if (i <= j){
			r = v[j];
			v[j] = v[i];
			v[i] = r;
			++i;
		}
	}
	qqsort(st, i - 1);
	qqsort(i, dr);
}

int main() {
	ifstream f("algsort.in");
	ofstream g("algsort.out");

	int i;
	f >> n;
	for (i = 0; i < n; ++i)
		f >> v[i];

	srand(time(NULL));
	qqsort(0, n - 1);

	for (i = 0; i < n; ++i)
		g << v[i] << " ";
	f.close();
	g.close();
	return 0;
}