Cod sursa(job #606945)

Utilizator PlayLikeNeverB4George Marcus PlayLikeNeverB4 Data 10 august 2011 14:52:29
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 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;
	int x=v[p];
	if(st>=dr) return;
	while(i<=j) {
		while(v[i]<x && i<=dr) i++;
		while(v[j]>x && 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] << ' ';
}