Cod sursa(job #751238)

Utilizator BarracudaFMI-Alex Dobrin Barracuda Data 24 mai 2012 23:00:36
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include<fstream>
#include<cstdlib>

using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int v[500002],n,i;
int pivot (int st,int dr) {
	int PIV;
	int i=st-1;
	int j=dr+1;
	PIV=v[st +rand()%(dr-st+1)];
	
	while( 22 ) {
		
		do{
			++i;
			
		}while(v[i]<PIV);
		
		do{
			--j;
			
		}while(v[j]>PIV);
		
		if(i<j)
			swap(v[i],v[j]);
		else
			return j;
	}
	return 0;
}
void quick(int st,int dr){
	if(st<dr){
		int piv=pivot(st,dr);
		quick(st,piv);
		quick(piv+1,dr);
		
		
	}
}
int main () {
	
	
	f>>n;
	
	for(i=1;i<=n;i++)
		f>>v[i];
	quick(1,n);
	for(i=1;i<=n;i++)
		g<<v[i]<<" ";
	return 0;
}