Cod sursa(job #278856)

Utilizator vladbBogolin Vlad vladb Data 12 martie 2009 16:05:36
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include<fstream>

using namespace std;

unsigned long n,a[500000];

ifstream fin("algsort.in");
ofstream fout("algsort.out");

void sort(int x,int y)    
{    unsigned long i,j,p,aux;    
     if(x<y)    
     {  i=x-1;    
        j=y+1;    
        p=a[(x+y)/2];    
      while(i<j)    
      {   do i++; while(a[i]<p);    
          do j--; while(a[j]>p);    
          if(i<j) {  aux=a[i];    
                 a[i]=a[j];    
                 a[j]=aux;    
              }    
      }    
      sort(x,i-1);    
      sort(j+1,y);    
       }    
 }    
 
 int main()
 {	fin>>n;
 	for(long i=1;i<=n;i++)
 		fin>>a[i];
 	sort(1,n);
 	for(long i=1;i<=n;i++)
 		fout<<a[i]<<" ";
 	fin.close();
 	fout.close();
 	return 0;
}