Cod sursa(job #855255)

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

int *vector_citit;

void qsort(int start,int sfarsit)
{
    int 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,i-1);
    qsort(j+1,sfarsit);
}

int main()
{
    int 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;
}