Cod sursa(job #2910066)

Utilizator db_123Balaban David db_123 Data 18 iunie 2022 11:12:05
Problema Sortare prin comparare Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.69 kb
#include <fstream>
#include <vector>

using namespace std;

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

int n;
vector<int> v;

void read(){
    cin>>n;
    v.resize(n+1);
    for(int i=1;i<=n;i++){
        cin>>v[i];
    }
}
/// [0,r-l] 

void sort(int l,int r){
    int pivot=rand()%(r-l+1)+l;
    swap(v[pivot],v[r]);
    int firstFree=l;
    for(int i=l;i<r;i++){
        if(v[i]<=pivot){
            swap(v[firstFree],v[i]);
            firstFree++;
        }
    }
    swap(v[r],v[firstFree]);
    sort(l,firstFree-1);
    sort(firstFree+1,r);
}

void solve(){
    sort(1,n);
    for(int i=1;i<=n;i++){
        cout<<v[i]<<" ";
    }
}

int main(){

    read();
    solve();
    return 0;
}