Cod sursa(job #371570)

Utilizator GotenAmza Catalin Goten Data 5 decembrie 2009 20:13:43
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include<fstream>

using namespace std;

long a[500000];

void ex(long i,long j)
{
 long aux=a[i];
 a[i]=a[j];
 a[j]=aux;
 }

void qs(long i,long j)
{
 long s=i,d=j,piv=a[(i+j)>>1];
 while(s<=d)
 {
  while(a[s]<piv)s++;
  while(a[d]>piv)d--;
  if(s<=d)
  {
  ex(s,d);
  s++;
  d--;
  }
  }
 if(i<d) qs(i,d);
 if(s<j) qs(s,j);
 }

int main()
{ 
 long i,n;
 ifstream f("algsort.in");
 ofstream g("algsort.out");
 f>>n;
 for(i=1;i<=n;i++)f>>a[i];
 qs(1,n);
 for(i=1;i<=n;i++)g<<a[i]<<' ';
 return 0;
 }