Cod sursa(job #748455)

Utilizator DaicuDaicu Alexandru Daicu Data 13 mai 2012 16:11:51
Problema Sortare prin comparare Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include<fstream>
#include<stdlib.h>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int a[500000],n,pp,si;
void read(){
	f>>n;
	for(int i=0;i<n;i++)
		f>>a[i];
}

void qsort(int i,int j){
	if(i<j){
	pp=i+rand()%(j-i);
	si=i;
	a[pp]=a[j]^a[pp]^(a[j]=a[pp]);
	for(int k=i;k<j;k++)
		if(a[k]<a[j]){
			a[k]=a[si]^a[k]^(a[si]=a[k]);
			++si;
	}
		a[si]=a[j]^a[si]^(a[j]=a[si]);
	qsort(i,si-1);
	qsort(si+1,j);
	}
}

int main(){
	read();
	qsort(0,n-1);
	for(int i=0;i<n;i++)
		g<<a[i]<<" ";
	return 0;
}