Cod sursa(job #606758)

Utilizator PlayLikeNeverB4George Marcus PlayLikeNeverB4 Data 9 august 2011 20:52:39
Problema Sortare prin comparare Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <fstream>
using namespace std;

ifstream fin("algsort.in");
ofstream fout("algsort.out");

int v[500005],i,N;

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

int main() {
	srand(time(0));
	fin >> N;
	for(i=1;i<=N;i++) fin >> v[i];
	qsort(1,N);
	for(i=1;i<=N;i++) fout << v[i] << ' ';
}