Cod sursa(job #606759)

Utilizator PlayLikeNeverB4George Marcus PlayLikeNeverB4 Data 9 august 2011 21:15:46
Problema Sortare prin comparare Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <fstream>
using namespace std;

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

int v[500005],i,N;

/*void swap(int &a, int &b) {
	int aux=a; a=b; b=aux;
}
*/
void qsort(int st, int dr) {
	int p=st+ rand()%(dr-st+1),i=st,j=dr;
	if(st>=dr) return;
	while(i<=j) {
		while(v[i]<v[p] && i<=dr) i++;
		while(v[j]>v[p] && j>=st) j--;
		if(i<=j) {
			swap(v[i],v[j]);
			i++;
			j--;
		}
	}
	if(st<j) qsort(st,j);
	if(i<dr) qsort(i,dr);
}

int main() {
	srand(time(0));
	fin >> N;
	for(i=1;i<=N;i++) fin >> v[i];
	qsort(1,N);
	for(i=1;i<=N;i++) fout << v[i] << ' ';
}