Cod sursa(job #1175889)

Utilizator XeBluePodaru Mihai XeBlue Data 25 aprilie 2014 01:58:56
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <fstream>

using namespace std;

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

#define N 500000

int v[N], n;

int pivot(int st, int dr)
{
    int i=1, j=0;

    while(st!=dr)
    {
        if(v[st]>v[dr])
        {
            v[st]=v[st]+v[dr]-(v[dr]=v[st]);
            i=i+j-(j=i);
        }
        st+=i;
        dr-=j;
    }

    return st;
}

void quicksort(int st, int dr)
{
    if(st<dr)
    {
        int p = pivot(st, dr);
        quicksort(st,p-1);
        quicksort(p+1, dr);
    }
}
int main()
{
    in >> n;

    for(int i=0;i<n;i++)
        in >> v[i];

    quicksort(0, n-1);

    for(int i=0;i<n;i++)
        out << v[i] << " ";

    in.close();
    out.close();
    return 0;
}