Cod sursa(job #252334)

Utilizator RobytzzaIonescu Robert Marius Robytzza Data 4 februarie 2009 11:38:57
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <stdio.h>

int a[500010];
int n;
int k=0;

void poz (int li,int ls,int &k)
{
     int i=li,j=ls,i1=0,j1=-1,aux;
    while (i<j)
    {
       if (a[i]>a[j])
       {
         aux=a[i];
         a[i]=a[j];
         a[j]=aux;
         aux=i1;
         i1=-j1;
         j1=-aux;
       }
    i=i+i1;
    j=j+j1;
    }
   k=i;
}

void quick(int li,int ls)
{
  if (li<ls)
  {
      poz(li,ls,k);
      quick(li,k-1);
      quick(k+1,ls);
  }
}

int main ()
{
     freopen ("algsort.in","r",stdin);
     freopen ("algsort.out","w",stdout);
     scanf ("%d ",&n);
     for (int i=1;i<=n;i++)
          scanf ("%d ",&a[i]);

     quick(1,n);

     for (int i=1;i<=n;i++)
          printf("%d ",a[i]);
     printf("\n");
     return 0;
}