Cod sursa(job #572893)

Utilizator Adrian1997Radulescu Adrian Adrian1997 Data 5 aprilie 2011 18:34:32
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <stdio.h>
#include <fstream.h>
#define DIM 500001
ifstream f("algsort.in");
FILE *g=fopen("algsort.out","w");
long n;
long v[DIM];

long pos(long i,long j){
	long ii=0,jj=-1,aux;
	while(i!=j){
		if(v[i]>v[j]){
			aux=v[i];
			v[i]=v[j];
			v[j]=aux;
			aux=ii;
			ii=-jj;
			jj=-aux;
		}
		i+=ii;
		j+=jj;
	}
	return i;
}

void quick(long p,long u){
	if(p<u){
		long k=pos(p,u);
		quick(p,k-1);
		quick(k+1,u);
	}
}

int main(void){
	register int i;
	
	f>>n;
	for(i=1;i<=n;i++){
		f>>v[i];
	}
	quick(1,n);
	for(i=1;i<=n;i++){
		fprintf(g,"%ld ",v[i]);
	}
	f.close();
	fclose(g);
	return 0;
}