Cod sursa(job #656087)

Utilizator lavinia_ilincaIlinca Lavinia lavinia_ilinca Data 3 ianuarie 2012 21:35:04
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include<stdio.h>

int n,a[500010];

void swap(int &x,int &y)
{
	int aux=x;
	x=y;
	y=aux;
}

void quick(int p,int u)
{
	int i=p,j=u,m;
	m=a[(i+j)/2];
	do 
	{
		while ((m<a[j]) && (j>=1)) j--;
		while ((a[i]<m) && (i<=n)) i++;
		if (i<=j)
		{
			swap(a[i],a[j]);
			i++;
			j--;
		}
    } while (i<=j);
if (p<j) quick(p,j);
if (i<u) quick(i,u);
}

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]);
quick(1,n);
for (i=1;i<=n;i++) printf("%d ",a[i]);
return 0;
}