Cod sursa(job #256978)

Utilizator Sorin_IonutBYSorynyos Sorin_Ionut Data 12 februarie 2009 16:47:42
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <stdio.h>

int a[500500], n;

void sort(int st,int dr)
{
    int i=st,j=dr,sch = a[(st+dr)/2], tmp;
    do{
        while (a[i] < sch) ++i;
        while (a[j] > sch) --j;
        if (i<=j)
        {
            tmp = a[i];
            a[i] = a[j];
            a[j] = tmp;
            ++i; --j;    
        }
    } while (i<=j);  
    if (st<j) sort(st,j);
    if (i<dr) sort(i,dr);  
}

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]);
    
    sort(1,n);
    
    for (int i=1;i<=n;++i) printf("%d ", a[i]);    
    printf("\n");
    
    return 0;
}