Cod sursa(job #1910891)

Utilizator zeboftwAlex Mocanu zeboftw Data 7 martie 2017 18:44:24
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;

vector<int> v;

int partitione (int lo, int hi) {
    int pivot = v[lo];
    int i = lo - 1;
    int j = hi + 1;
    while (true) {
        do {
            i++;
        } while (v[i] < pivot);
        do {
            j--;
        } while (v[j] > pivot);
        if (i>=j) return j;
        swap(v[i],v[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;
    cin >> n;
    for(int i=1; i<= n;i++) {
        cin >> x;
        v.push_back(x);
    }
    quicksort(0,n-1);
    for(auto it:v) cout << it << " ";
    return 0;
}