Cod sursa(job #303565)

Utilizator ssergiussSergiu-Ioan Ungur ssergiuss Data 9 aprilie 2009 23:34:39
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include<algorithm>
using namespace std;

#define DIM 500001

int n,a[DIM];

void qsort(int sti,int dri){
    int stf=sti,drf=dri,piv=a[(sti+dri)/2],aux;

    do{
        for(; a[stf]<piv; ++stf);
        for(; a[drf]>piv; --drf);
        if(stf<=drf){
            aux=a[stf];
            a[stf]=a[drf];
            a[drf]=aux;
            ++stf;
            --drf;}}
    while(stf<=drf);
    if(stf<dri)
        qsort(stf,dri);
    if(sti<drf)
        qsort(sti,drf);}

void solve(){
    int i;

    scanf("%d",&n);
    for(i=1; i<=n; ++i)
        scanf("%d",&a[i]);
    qsort(1,n);
    for(i=1; i<=n; ++i)
        printf("%d ",a[i]);}

int main(){

    freopen("algsort.in","r",stdin);
    freopen("algsort.out","w",stdout);

    solve();
    return 0;}