Cod sursa(job #261658)

Utilizator nicolaetitus12Nicolae Titus nicolaetitus12 Data 18 februarie 2009 17:12:57
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include <cstdlib>
#include <fstream>
#define N 500001
using namespace std;
long a[N];
void sort(int left, int right)
{int l=left,r=right,e=a[left+rand()%(right-left+1)],aux;

 while(l<r)
 {while(a[l]<e)l++;
  while(a[r]>e)r--;
  if(l<=r)
  {aux=a[l];
   a[l]=a[r];
   a[r]=aux;
   l++;
   r--;
  }
 }
 if(r>left)
  sort(left,r);
 if(l<right)
  sort(l,right);
}

int main ()
{fstream fout("algsort.out",ios::out);
 fstream fin("algsort.in",ios::in);

 int n,i;
 fin>>n;
 for (i=0;i<n;i++)
 {fin>>a[i];}
 sort(0,n-1);
 for (i=0;i<n;i++)
 {fout <<a[i]<<" ";
 }
 fout.close();
 return 0;
}