Cod sursa(job #736417)

Utilizator ion824Ion Ureche ion824 Data 18 aprilie 2012 16:27:10
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include<fstream>
using namespace std;

int a[500001],n,k;

void quicksort(int lb, int ub){
    int i=lb,j=ub,pivot=a[(lb+ub)>>1];
    do{
      while(a[i]<pivot)++i;
      while(a[j]>pivot)--j;
      if(i<=j){
           a[i]^=a[j]; a[j]^=a[i]; a[i]^=a[j];                 
           i++; j--;
      } 
    }while(i<=j);
   if(j>lb)quicksort(lb,j);  
   if(ub>i)quicksort(i,ub);
}

int main(void){
    ifstream fin("algsort.in");
    ofstream fout("algsort.out");
    fin>>n;
    for(int i=1;i<=n;++i)fin>>a[i]; fin.close();
    quicksort(1,n);
    for(int i=1;i<=n;++i)fout<<a[i]<<" "; 
    fout.close();
 return 0;   
}