Cod sursa(job #304452)

Utilizator cvicentiuCiorbaru Vicentiu Marian cvicentiu Data 13 aprilie 2009 10:38:58
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.94 kb
#include <stdio.h>   
#define fin "algsort.in"   
#define fout "algsort.out"   
#define MaxN 500001   
unsigned int v[500001],n;      
     
void qsort(long l, long r)         
{         
 long i,j,x,y;         
 i=l;         
 j=r;         
 x=v[(l+r)>>1];         
 do         
    {         
    while ((v[i]<x)&&(i<r)) ++i;         
    while ((x<v[j])&&(j>l)) --j;         
    if (i<=j)         
        {         
        y=v[i];         
        v[i]=v[j];         
        v[j]=y;         
        ++i;         
        --j;         
        }         
    }         
 while (i<=j);         
 if (l<j) qsort(l,j);         
 if (i<r) qsort(i,r);         
}       
int main(){   
    freopen(fin,"r",stdin);   
    freopen(fout,"w",stdout);   
    scanf("%d",&n);   
    for (int i=1;i<=n;i++)   
        scanf("%ld",&v[i]);   
    qsort(1,n);   
    for (int i=1;i<=n;i++)   
        printf("%ld ",v[i]);   
}