Cod sursa(job #1362593)

Utilizator QQQ1911Vodita Stefan QQQ1911 Data 26 februarie 2015 13:51:43
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include <fstream>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
long n;
long long a[500001];
void cit()
{
    f>>n;
    long i;
    for(i=1; i<=n; ++i)
    f>>a[i];
}
void poz(short p, short &m, short u)
{
    int i,j,ii,jj,aux;
    i=p;
    j=u;
    ii=0;
    jj=-1;
    while(i<j)
    {
        if(a[i]>a[j])
        {
            aux=a[i];
            a[i]=a[j];
            a[j]=aux;
            aux=ii;
            ii=-jj;
            jj=-aux;
        }
        i=i+ii;
        j=j+jj;
    }
    m=i;
}
void ordo(short p, short u)
{
    short m;
    if(p<u)
    {
        m=(p+u)/2;
        poz(p,m,u);
        ordo(p,m);
        ordo(m+1,u);
    }
}
void afis()
{
    long i;
    for(i=1; i<=n; ++i)
    g<<a[i]<<" ";
}
int main()
{
    cit();
    ordo(1,n);
    afis();
    return 0;
}