Cod sursa(job #2763846)

Utilizator bluestorm57Vasile T bluestorm57 Data 17 iulie 2021 10:45:36
Problema Sortare prin comparare Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.1 kb
///I will be fast
///Today I'm gonna be a code hero
#include <bits/stdc++.h>

using namespace std;

inline void Boost(){
    ios::sync_with_stdio(false);
    cin.tie(NULL);cout.tie(NULL);
}

int pivot(int lo, int hi, int v[], int n){
    int piv_index = lo;
    int pivot = v[lo];
    while(lo < hi){
        while(lo < n && v[lo] <= pivot)
             lo++;
        while(hi >= 0 && v[hi] > pivot)
            hi--;
        if(lo < hi)
            swap(v[lo], v[hi]);
    }
    swap(v[hi], v[piv_index]);
    return hi;
}

void quickSort(int lo, int hi, int v[], int n){
    if(lo < hi){
        int p = pivot(lo, hi, v, n);
        quickSort(lo, p - 1, v, n);
        quickSort(p + 1, hi, v, n);
    }
}
int v[500005];
void solve(){
    int n;
    ifstream f("algsort.in");
    ofstream g("algsort.out");
    f >> n;
    for(int i = 0 ; i < n ; i++)
        f >> v[i];
    quickSort(0, n - 1, v, n);
    for(int i = 0 ; i < n ; i++)
        g << v[i] << " ";
}

int main(){
    Boost();
    int T = 1;
    //cin >> T;
    while(T--)
        solve();

    return 0;
}