Cod sursa(job #792464)

Utilizator SpiriFlaviuBerbecariu Flaviu SpiriFlaviu Data 27 septembrie 2012 12:47:22
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <fstream>

using namespace std;

ifstream fin("algsort.in");
ofstream fout("algsort.out");

long a[500001];

int poz(int st, int dr)
{
    int i=st, j=dr,di=0,dj=1,aux;
    while(i<j)
    {
        if(a[i]>a[j])
        {
            aux=a[i];
            a[i]=a[j];
            a[j]=aux;
            di=1-di;
            dj=1-dj;
        }
        i+=di;
        j-=dj;
    }
    return j;
}

void qs(int st, int dr)
{
    if(st<dr)
    {
        int p = poz(st,dr);
        qs(st,p-1);
        qs(p+1,dr);
    }
}




int main()
{

    int n;
    fin>>n;
    for(int i=1;i<=n;i++)
        fin>>a[i];


    qs(1,n);


    for(int i=1;i<=n;i++)
        fout<<a[i]<<' ';
    fin.close();
    fout.close();
    return 0;
}