Cod sursa(job #748464)

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

void qsort(int i,int j){
	if(i<j){
		if(i==j+1){
			if(a[i]>a[j])
				swap(a[i],a[j]);}
	else{
	pp=i+(j-i)/2;
	si=i;
	swap(a[j],a[pp]);
	for(int k=i;k<j;k++)
		if(a[k]<a[j]){
			swap(a[k],a[si]);
			++si;
		}
	}
		swap(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;
}