Cod sursa(job #2043822)

Utilizator zeboftwAlex Mocanu zeboftw Data 20 octombrie 2017 16:49:50
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include <fstream>
#include <algorithm>
#include <vector>

using namespace std;

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

vector<int> v;

int partitione (int lo, int hi) {
    int pivot = v[lo];
    int i = lo - 1;
    int j = hi + 1;
    do {
        do {
            i++;
        } while (v[i] < pivot);
        do {
            j--;
        } while (v[j] > pivot);
        if (i>=j) return j;
        swap(v[i],v[j]);
    } while (i<=j);
}

void quicksort (int lo, int hi) {
    if (lo < hi) {
        int div = partitione(lo, hi);
        quicksort(lo, div);
        quicksort(div+1, hi);
    }
}

int main()
{

    int n, x;
    fin >> n;
    for(int i=1; i<= n;i++) {
        fin >> x;
        v.push_back(x);
    }
    quicksort(0,n-1);
    for(auto it:v) fout << it << " ";
    return 0;
}