Cod sursa(job #2063392)

Utilizator Cristi_ChiraChira Cristian Cristi_Chira Data 11 noiembrie 2017 11:15:44
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <iostream>
#include <fstream>
#define dm 500004
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int v[dm];
int mutari(int lo, int hi)
{
int    piv = v[hi];
int    i = lo - 1;
    for(int j = lo; j <= hi - 1; j++)
    {
        if(v[j] < piv)
        {
            i++;
            swap(v[i], v[j]);
        }
    }
    swap(v[i + 1], v[hi]);
    return (i+1);
}
void quick_sort(int lo, int hi)
{
        if( lo < hi )
        {
            int piv = mutari(lo, hi);
            quick_sort(lo, piv - 1);
            quick_sort(piv + 1, hi);
        }
}
int n;
int main()
{
    fin >> n;
    for(int  i = 1; i <= n; i++)
        fin >> v[i];
    quick_sort(1, n);
    for(int  i = 1; i <= n; i++)
    {
        fout << v[i] << " ";
    }
    return 0;
}