Cod sursa(job #298141)

Utilizator cristikIvan Cristian cristik Data 5 aprilie 2009 21:19:13
Problema Sortare prin comparare Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.7 kb
#include <stdio.h>
int a[500001],n;
void quick(int x,int y)
{
    int i,j,p,aux;
    if(x<y)
    {
        i=x-1;
        j=y+1;
        p=a[(x+y)/2];
        while(i<j)
        {
            do i++; while(a[i]<p);
            do j--; while(a[j]>p);
            if(i<j)
            {
                aux=a[i];
                a[i]=a[j];
                a[j]=aux;
            }
        }
        quick(x,i-1);
        quick(j+1,y);
    }
}
int main()
{
    int i;
    freopen("algsort.in","r",stdin);
    freopen("algsort.out","w",stdout);
    scanf("%d",&n);
    for(i=1; i<=n; i++) scanf("%d",&a[i]);
    quick(1,n);
    for(i=1; i<=n; i++) printf("%d ",a[i]);
    return 0;
}