Cod sursa(job #748460)

Utilizator DaicuDaicu Alexandru Daicu Data 13 mai 2012 16:21:38
Problema Sortare prin comparare Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 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){
	pp=i+(j-i)/2;
	si=i;
	aux=a[j];
	a[j]=a[pp];
	a[pp]=aux;
	for(int k=i;k<j;k++)
		if(a[k]<a[j]){
			aux=a[si];
			a[si]=a[k];
			a[k]=aux;
			++si;
	}
		aux=a[j];
		a[j]=a[si];
		a[si]=aux;
	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;
}