Cod sursa(job #960853)

Utilizator mihaiSimuSimu Mihai mihaiSimu Data 11 iunie 2013 11:40:08
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <fstream>
#include <iostream>
#include <vector>
using namespace std;
int n,x;
vector<int> a;

int choosePivot(int from,int to){
	int pivot=a[from];int pos=from;
	for(int i=from+1;i<=to;i++){
		if(a[i]<pivot){
			int aux=a[i];
			a[i]=a[pos+1];
			a[pos+1]=aux;

			aux=a[pos+1];
			a[pos+1]=a[pos];
			a[pos]=aux;

			pos++;
		}
	}
	return pos;
}

void quickSort(int from,int to){
	if(from>=to) return;
	int pivot = choosePivot(from,to);
	quickSort(from,pivot-1);
	quickSort(pivot+1,to);
}

int main(){

	ifstream in("algsort.in");
	ofstream out("algsort.out");
	in>>n;
	for(int i=0;i<n;i++){in>>x;a.push_back(x);}
	quickSort(0,a.size()-1);

	for(int i=0;i<a.size();i++){
		out<<a[i]<<" ";
	}
	
	return 0;
}