Cod sursa(job #270704)

Utilizator hasegandaniHasegan Daniel hasegandani Data 4 martie 2009 13:54:16
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include<stdio.h>

#define nmax 500001

int a[nmax],n;

void swap(int &i,int &j)
{
    int aux=i;
    i=j;
    j=aux;
}

void sort(int st,int dr)
{
    if (st >= dr) return;
    
    int poz=st-1;
    for(int i=st;i<=dr;++i)
        if (a[i]<a[dr])
            swap(a[i],a[++poz]);
    
    swap(a[dr],a[++poz]);
    
    sort(st,poz-1);
    sort(poz+1,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;
}