Cod sursa(job #1182284)

Utilizator SecMarianMMarian Morosac SecMarianM Data 5 mai 2014 21:05:21
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <fstream>
using namespace std;

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

#define DMAX 500001
int v[DMAX], n;

void read (){
	int i;
	fin >> n;
	for (i = 0; i < n; i++) fin >> v[i];
}

int  partition	(int p, int r){
	int x = v[r], i = p - 1;
	for (int j = p; j <= r - 1; j++){
		if (v[j] <= x){
			swap(v[++i], v[j]);
		}
	}
	swap(v[++i], v[r]);
	return i;
}
void quicksort	(int p, int r){
	int q = 0;
	if (p < r){
		q = partition(p, r);
		quicksort(p, q - 1);
		quicksort(q + 1, r);
	}
}

void write(){
	int i = 0;
	for (i = 0; i < n; i++) fout << v[i] << ' ';
}

int main(){
	read();
	quicksort(0, n-1);
	write();	
	return 0;
}