Cod sursa(job #246082)

Utilizator cvicentiuCiorbaru Vicentiu Marian cvicentiu Data 19 ianuarie 2009 20:49:32
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <fstream>
#include <algorithm>
using namespace std;
fstream fin ("algsort.in",ios::in);
fstream fout("algsort.out",ios::out);
unsigned int v[500001],n;

int imparte(int st,int dr){
	bool dir=true;
	while (st<dr){
		if (v[st]>v[dr]){
			swap(v[st],v[dr]);
			dir=!dir;
		}
		if (dir) dr--; else st++;
	}
	return st;

}
void quicksort(int st,int dr){
	int aux;
	if (st<dr){
		aux=imparte(st,dr);
		quicksort(st,aux-1);
		quicksort(aux+1,dr);
	}
}

int main(){
	fin>>n;
		for (unsigned int i=1;i<=n;i++)
			fin>>v[i];
	
		quicksort(1,n);

		for (unsigned int i=1;i<=n;i++)
			fout<<v[i]<<" ";
	
}