Cod sursa(job #751680)

Utilizator roots4Irimia Alexandru Gabriel roots4 Data 26 mai 2012 17:04:30
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include<stdio.h>
#define dim 500010

FILE*f=fopen("algsort.in","r");
FILE*g=fopen("algsort.out","w");

int V[dim],n,aux;

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){
	int p;
	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;
}