Cod sursa(job #2901357)

Utilizator eduardpetrePetre Vasile-Eduard eduardpetre Data 13 mai 2022 17:02:49
Problema Sortare prin comparare Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <bits/stdc++.h>

using namespace std;

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

int partition (int v[], int st, int dr){
    int pivot = v[dr];
    int i = (st - 1);

    for (int j = st; j < dr; j++){
        if (v[j] < pivot){
            i++;
            swap(v[i], v[j]);
        }
    }

    swap(v[i + 1], v[dr]);
    return (i + 1);
}

void qSort(int v[], int s, int d){
    if(s < d){
        int p = partition(v, s, d);
        qSort(v, s, p-1);
        qSort(v, p+1, d);
    }
}

int main(){
    int n, v[500001];
    in >> n;
    for(int i = 0; i < n; ++i)
        in >> v[i];

    qSort(v, 0, n - 1);

    for(int i = 0; i < n; ++i)
        out << v[i] << ' ';

    in.close();
    out.close();

    return 0;
}