Cod sursa(job #2347402)

Utilizator tester_100Alin Barosanu tester_100 Data 18 februarie 2019 19:18:59
Problema Sortare prin comparare Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.09 kb
#include <bits/stdc++.h>
#define nmax 100005

using namespace std;

typedef pair<int, int> pii;


vector<int>v;

int N, M;

inline int ComputePivot(int left, int right) {
    int pivot = v[right];
    int leftIndex = left;
    for (int i = left; i < right; ++i) {
        if (v[i] < pivot) {
            swap(v[i], v[leftIndex]);
            leftIndex++;
        }
    }
    swap(v[right], v[leftIndex]);
    return leftIndex;
}

void QSort(int left, int right) {
    if (left < right) {
        int pivot = ComputePivot(left, right);

        QSort(left, pivot - 1);
        QSort(pivot + 1, right);
    }
}

int main(){
    int i;
    freopen("algsort.in","r",stdin);
    freopen("algsort.out","w",stdout);
//    ios::sync_with_stdio(false);
//    cin >> N;
    scanf("%d", &N);
    for (int i = 0; i < N; ++i) {
        int x;
//        cin >> x;
    scanf("%d", &x);
        v.push_back(x);
    }
    QSort(0, N - 1);
    for (auto it: v) {
        cout << it <<" ";
        printf("%d ", it);
    }
    printf("\n");
//    cout << "\n";
    return 0;
}