Cod sursa(job #1018095)

Utilizator andreeaghetuUNIBUC andreeaghetu andreeaghetu Data 28 octombrie 2013 21:03:44
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream in ("algsort.in");
ofstream out ("algsort.out");
int N, v[500005];
void interschimb (int &x, int &y)
{
    int aux=x;
    x=y;
    y=aux;
}
void quicksort(int a, int b)
{
    int i, j, poz_piv;
    if (a<b)
    {
        poz_piv=(a+b)/2;
        i=a;
        j=b;
        while (i<j)
        {
            while (v[i]<=v[poz_piv] && i<b)
                i++;
            while (v[j]>v[poz_piv])
                j--;
            if (i<j)
                interschimb(v[i], v[j]);
        }
        interschimb(v[poz_piv], v[j]);
        quicksort(a, j-1);
        quicksort(j+1, b);
    }
}
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]<<" ";
    return 0;
}