Cod sursa(job #822341)

Utilizator DraStiKDragos Oprica DraStiK Data 23 noiembrie 2012 12:14:06
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <stdio.h>
#define Nmax 500005
int a[Nmax],n;
void quick_sort (int st,int dr)
{
    int i=st,j=dr,piv=a[(st+dr)/2],aux;
    do
    {
        while (a[i]<piv) 
            ++i;
        while (a[j]>piv) 
            --j;
        if (i<=j)
        {
            aux=a[i];
            a[i]=a[j];
            a[j]=aux;
            ++i; 
            --j;    
        }
    } 
    while (i<=j);
    if (st<j)
        quick_sort(st,j);
    if (i<dr) 
        quick_sort(i,dr);    
}
int main()
{
    freopen("algsort.in","r",stdin);
    freopen("algsort.out","w",stdout);
    int i;
    scanf("%d",&n);
    for (i=1;i<=n;++i)
        scanf("%d",&a[i]);
    quick_sort(1,n);
    for (i=1;i<=n;++i)
        printf("%d ",a[i]);
    return 0;    
}