Cod sursa(job #2606737)

Utilizator OvidRata Ovidiu Ovid Data 28 aprilie 2020 14:14:29
Problema Sortare prin comparare Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.91 kb
#include<bits/stdc++.h>
using namespace std;
#define INIT  ios_base :: sync_with_stdio(0); cin.tie(); cout.tie();mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
#define mp make_pair
#define pb push_back
#define ft first
#define sc second
#define ll long long
#define pii pair<int, int>
ifstream fin("algsort.in"); ofstream fout("algsort.out");



int t, n, m, k, q, l;
vector<ll> a;

void quick_sort(int l, int r){
int m=(l+r)/2;

if(l==r){return;}

if( a[l]>=a[r] ){swap(a[l], a[r] );}
if( a[m]<=a[l]  ){ swap(a[l], a[m] ); }

quick_sort(l, m);
quick_sort(m+1, r);

for(int i=l; i<=r; i++){
    if(a[i]<=a[max(1, i-1)] ){
        swap(a[i], a[max(1, i-1)]  );
    }
}


return ;
}





int32_t main(){
INIT
fin>>n;
 a.resize(n+5);

for(int i=1; i<=n; i++){
    fin>>a[i];
}
quick_sort(1, n);


for(int i=1; i<=n; i++){
    fout<<a[i]<<" ";
}

return 0;
}