Cod sursa(job #721904)

Utilizator DaniLLeu Daniel DaniL Data 24 martie 2012 13:18:42
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include<fstream>
using namespace std;

ifstream f("algsort.in");
ofstream g("algsort.out");

int a[500001],n;

int poz(int ls , int ld)
{
	int i=ls;
	int j=ld;
	int ii=0,jj=-1;
	while(i!=j)
	{
		if(a[i]>a[j]){
			int aux =a[i];
			a[i]=a[j];
			a[j]=aux;
			aux=ii;
			ii=-jj;
			jj=-aux;
		}
		i+=ii;
		j+=jj;
	}
	return i;
}

void sort(int ls,int ld, int a[]){
	if(ls<ld){
		int p=poz(ls,ld);
		sort(ls,p-1,a);
		sort(p+1,ld,a);
	}
}

int main(){
	int i;
	f>>n;
	for(i=1;i<=n;i++)
		f>>a[i];
	sort(1 , n , a);
	for(i=1;i<=n;i++)
		g<<a[i]<<" ";
	
	return 0;
}