Cod sursa(job #246991)

Utilizator zalmanDanci Emanuel Sebastian zalman Data 21 ianuarie 2009 22:50:52
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include<stdio.h>
#include<iostream.h>
#define fin "algsort.in"
#define fout "algsort.out"
int x[5000], n;

void swap( int &x, int &y)
{
 int aux;
 aux = x;
 x = y;
 y = aux;
}
void quicksort(int a[], int l, int r)
{
 int i = l-1, j = r;
 int v = a[r];
 if( r <= l )
  return;
 for( ; ; )
 {
  while ( a[++i] <  v );
  while ( v < 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);
}

int main(void)
{


   freopen(fin,"r",stdin);
   freopen(fout,"w",stdout);
   scanf("%d", &n);
   
   for(register int i =1 ; i <= n; i++)
    scanf("%d",&x[i]);

    quicksort(x, 1 , n);

   for(register int i = 1; i <= n; i++)
	printf("%d ",x[i]);

    printf("\n");
	fcloseall();
	return 0;
	
}