Cod sursa(job #241636)

Utilizator andumMorie Daniel Alexandru andum Data 10 ianuarie 2009 16:17:26
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include <stdio.h>

FILE *f,*g;

long n,i,a[500001];

void quicksort(long st, long dr)
{
 long i,j,p;

 i=st; j=dr; p=a[(st+dr)/2];
 if (i>=j)
	return;
 while (i<=j)
  {
   while (a[i]<p) i++;
   while (a[j]>p) j--;
   if (i<=j)
	{
	 a[0]=a[i];
	 a[i]=a[j];
	 a[j]=a[0];
	 i++;
	 j--;
	}
  }
  if (st<j) quicksort(st,j);
  if (dr>i) quicksort(i,dr);

}

int main()
{

 freopen("algsort.in","r", stdin);
 freopen("algsort.out","w", stdout);

 scanf("%ld", &n);
 for (i=1;i<=n;i++)
	scanf("%ld", &a[i]);

 quicksort(1,n);

 for (i=1;i<=n;i++)
	printf("%ld ", a[i]);

 return 0;

}