Cod sursa(job #649299)

Utilizator vlad.doruIon Vlad-Doru vlad.doru Data 15 decembrie 2011 18:38:26
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <fstream>
#include <ctime>
#include <cstdlib>

using namespace std;

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

const int N=500001;

int v[N],n,pozstart;

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

int main(){
	srand(time(NULL));
	int i;
	in>>n;
	for(i=1;i<=n;++i){
		in>>v[i];
	}
	Quick(1,n);
	for(i=1;i<=n;i++){
		out<<v[i]<<" ";
	}
	return 0;
}