Cod sursa(job #240109)

Utilizator AndreiDDiaconeasa Andrei AndreiD Data 6 ianuarie 2009 21:10:16
Problema Sortare prin comparare Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.68 kb
#include <stdio.h>

long C[500010],N;

void qsort(long l, long r)
{
 long i,j,x,y;
 i=l;
 j=r;
 x=C[(l+r)>>1];
 do
    {
    while ((C[i]<x)&&(i<N)) ++i;
    while ((x<C[j])&&(j>1)) --j;
    if (i<=j)
        {
        y=C[i];
        C[i]=C[j];
        C[j]=y;
        ++i;
        --j;
        }
    }
 while (i<=j);
 if (l<j) qsort(l,j);
 if (i<r) qsort(i,r);
}

int main()
{
    long i;
    freopen("algsort.in","r",stdin);
    scanf("%ld", &N);
    for (i=1;i<=N;++i)
          scanf("%ld", &C[i]);
    qsort(1,N);
    freopen("algsort.out","w",stdout);
    for (i=1;i<=N;++i)
         printf("%ld ", C[i]); 
    
    return 0;
}