Cod sursa(job #345068)

Utilizator digital_phreakMolache Andrei digital_phreak Data 1 septembrie 2009 16:46:42
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <iostream>
#include <fstream>

#define MAXN 500010

using namespace std;

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

int A[MAXN],N,aux;

int quick_sort(int l,int r) {
	int i = l;
	int j = r;
	int t = 1;
	
	while (i < j) {
	
		if (A[i] > A[j]) {
			aux = A[i];
			A[i] = A[j];
			A[j] = aux;
			t = 1 - t;
		}
	
		i += t;
		j -= (1 - t);
	}
	
	if (i-1 > l) quick_sort(l,i-1);
	if (j+1 < r) quick_sort(j+1,r);
}

int main() {

	fin >> N;
	
	int i;
	for (i=0;i<N;++i) fin >> A[i];
	
	quick_sort(0,N-1);
	
	for (i=0;i<N;++i) fout << A[i] << " ";
	fout << "\n";
	
	fin.close();
	fout.close();
	
	return 0;
}