Cod sursa(job #478645)

Utilizator DuxarFII-Stefan-Negrus Duxar Data 19 august 2010 16:38:07
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include<cstdio>
#include<algorithm>

using namespace std;

int n,i,a[500001];

void quicksort(int A[],int f,int l);

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

void quicksort(int A[], int l, int r)
	{ 
	int i=l-1,j=r;
	if (r<=l) return;
	for (;;)
	{
		while (A[++i]<A[r]) ;
		while (A[r]<A[--j]) if (j==l) break;
		if (i>=j) break;
		swap(A[i],A[j]);
	}
	swap(A[i],A[r]);
	quicksort(a,l,i-1);
	quicksort(a,i+1,r);
}