Cod sursa(job #296249)

Utilizator ProcopliucProcopliuc Adrian Procopliuc Data 4 aprilie 2009 15:02:35
Problema Sortare prin comparare Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
# include <stdio.h>
int a[500005],i,n,aux;
void poz (int i,int j,int &k)
{
int i1=0,j1=-1,x;
x=(i+j)/2;


aux=a[i];
a[i]=a[x];
a[x]=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)
{
int k;
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 ("%i",&n);
for (i=1;i<=n;i++)
scanf ("%i",&a[i]);
quick (1,n);
for (i=1;i<=n;i++)
printf ("%i ",a[i]);
return 0;
}