Cod sursa(job #332379)

Utilizator SprzlAbcdefg Sprzl Data 17 iulie 2009 17:02:02
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <stdio.h>

int a[500000];
int r,i,j;

void swap(int& t1, int& t2)
{
	int aux = t1;
	t1 = t2;
	t2 = aux;
}

int pivot(int p,int q)
{
	i = p;
	for (j=p+1;j<=q;j++)
	{
		if (a[j]<a[p])
		{
			i++;
			swap(a[i],a[j]);
		}
	}
	swap(a[i],a[p]);
	return i;
}

void qsort(int p,int q)
{
	if (p<q)
	{
		r = pivot(p,q);
		qsort(p,r-1);
		qsort(r+1,q);
	}
}

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

	for (i=0;i<n;i++)
	{
		printf("%d ", a[i]);
	}
	return 0;
}