Cod sursa(job #476114)

Utilizator Addy.Adrian Draghici Addy. Data 9 august 2010 20:14:38
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <fstream>
#include <algorithm>

using namespace std;

#define NMAX 500050

int V[NMAX], n, i;

void read ();
void quicksort (int[], int, int);
int partition (int[], int, int);
void print_sol ();

int main () {
	
	ifstream f ("algsort.in");
	ofstream g ("algsort.out");
	
	f >> n;
	for (i = 1; i <= n; i++)
		f >> V[i];
	
	quicksort (V, 1, n);
	
	for (i = 1; i <= n; i++)
		g << V[i] << " ";
	
	return 0;
}

void quicksort (int V[], int p, int u) {
	
	int pivot;
	
	if (p < u) {
		pivot = partition (V, p, u);
		quicksort (V, p, pivot - 1);
		quicksort (V, pivot + 1, u);
	}
}

int partition (int V[], int p, int u) {
	
	int x, i, j;
	
	x = V[u];
	i = p - 1;
	
	for (j = p; j < u; j++)
		if (V[j] <= x) {
			i++;
			swap (V[i], V[j]);
		}
	swap (V[i+1], V[u]);
	
	return i + 1;
}