Cod sursa(job #370677)

Utilizator GotenAmza Catalin Goten Data 1 decembrie 2009 20:07:20
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.5 kb
#include<iostream.h>

int a[500000],n,i;

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

void qs(int i,int j)
{
 int s=i,d=j,piv=a[(i+j)/2];
 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()
{
 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;
 }