Cod sursa(job #855387)

Utilizator TripluYOlteanu Costin TripluY Data 14 ianuarie 2013 21:54:30
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.91 kb
#include <fstream>
using namespace std;

int *vector_citit;

void qsort(long start,long sfarsit)
{
    long i=start,j=sfarsit,pivot=start+(sfarsit-start)/2;
    if(start>=sfarsit || sfarsit-start==1)
        return;
    while(i<j)
    {
        if(vector_citit[i]<vector_citit[pivot])
        {
            ++i;
            continue;
        }
        while(vector_citit[j]>vector_citit[pivot])
        {
            --j;
            continue;
        }
        swap(vector_citit[i],vector_citit[j]);
        ++i;--j;
    }
    qsort(start,j);
    qsort(i,sfarsit);
}

int main()
{
    long n,i;

    ifstream f("algsort.in");
    f >> n;

    vector_citit = new int[n];
    --n;
    for(i=0;i<=n;++i)
        f >> vector_citit[i];
    f.close();
    qsort(0,n);

    ofstream g("algsort.out");
    for(i=0;i<=n;++i)
        g<<vector_citit[i]<<" ";
    g.close();
    return 0;
}