Cod sursa(job #677376)

Utilizator mateiuliIulian mateiuli Data 10 februarie 2012 08:28:27
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.89 kb
//http://infoarena.ro/problema/algsort
#include<iostream.h>
#include<fstream.h>
ifstream fin("algsort.in");
ofstream fout("algsort.out");
long a[500000],n;
void quickSort(long arr[], long left, long right) 
{
    long i = left, j = right;
    long tmp;
    long pivot = arr[(left + right) / 2];
 
      /* partition */
    while (i <= j) 
	{
        while (arr[i] < pivot)
            i++;
        while (arr[j] > pivot)
            j--;
        if (i <= j) 
		{
            tmp = arr[i];
            arr[i] = arr[j];
            arr[j] = tmp;
            i++;
            j--;
        }
	};
 
      /* recursion */
      if (left < j)
            quickSort(arr, left, j);
      if (i < right)
            quickSort(arr, i, right);
}
int main()
{
	long i;
	fin>>n;
	for(i=1;i<=n;i++)
		fin>>a[i];
	quickSort(a,1,n);
	for(i=1;i<=n;i++)
		fout<<a[i]<<" ";
	return 0;
}