Cod sursa(job #275572)

Utilizator GagosGagos Radu Vasile Gagos Data 10 martie 2009 15:55:28
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include<stdio.h>
long *c,n,i;
void QS(long l,long r)
{
	int left=l,right=r,mid=c[(left+right)>>1],aux;
	do{
		while(c[left]<mid)
			++left;
		while(c[right]>mid)
			--right;
		if(left<=right){
			aux=c[left];
			c[left]=c[right];
			c[right]=aux;
			++left;
			--right;
		}
	}while(left<=right);
	if(l<right)
		QS(l,right);
	if(left<r)
		QS(left,r);
}
int main()
{
	freopen("algsort.in","r",stdin);
	freopen("algsort.out","w",stdout);
	scanf("%ld",&n);
	c=new long[n+5];
	for(i=1;i<=n;++i)
		scanf("%ld",&c[i]);
	QS(1,n);
	for(i=1;i<=n;++i)
		printf("%ld ",c[i]);
	printf("\n");
	return 0;
}