Cod sursa(job #393949)

Utilizator GotenAmza Catalin Goten Data 10 februarie 2010 11:19:39
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include<stdio.h>

int n,a[500100];

inline void qs(int i, int j)
{
	int s=i,d=j,aux,piv=a[(i+j)>>1];
	while(s<=d)
	{
		while(a[s]<piv)
			s++;
		while(a[d]>piv)
			d--;
		if(s<=d)
		{
			aux=a[s];
			a[s]=a[d];
			a[d]=aux;
			s++;
			d--;
		}
	}
	if(s<j)
		qs(s,j);
	if(i<d)
		qs(i,d);
}

int main()
{
	int i;
	freopen("algsort.in","r",stdin);
	freopen("algsort.out","w",stdout);
	scanf("%d",&n);
	for(i=1;i<=n;i++)
		scanf("%d",&a[i]);
	qs(1,n);
	for(i=1;i<=n;i++)
		printf("%d ",a[i]);
	return 0;
}