Cod sursa(job #751674)

Utilizator roots4Irimia Alexandru Gabriel roots4 Data 26 mai 2012 16:57:53
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include<stdio.h>
#define dim 500010
FILE*f=fopen("algsort.in","r");
FILE*g=fopen("algsort.out","w");

int V[dim],n,aux,p;

int poz(int st,int dr){
	int i=st,j=dr;
	int ii=0,jj=-1;
	while(i!=j){
		if(V[i]>V[j]){
			V[i]^=V[j]^=V[i]^=V[j];
			aux=ii;
			ii=-jj;
			jj=-aux;
		}
		i+=ii;j+=jj;
	}
	return i;
}

void quick(int st,int dr){
	if(st<dr){
		p=poz(st,dr);
		quick(st,p-1);
		quick(p+1,dr);
	}
}

int main(){
	int i;
	fscanf(f,"%D",&n);
	for(i=1;i<=n;i++)
		fscanf(f,"%d",&V[i]);
	quick(1,n);
	for(i=1;i<=n;i++)
		fprintf(g,"%d ",V[i]);
	return 0;
}