Cod sursa(job #2906812)

Utilizator Marius_TillingerTillinger Marius Marius_Tillinger Data 27 mai 2022 15:36:08
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include<bits/stdc++.h>
 
using namespace std;
 
ifstream f("algsort.in");
ofstream g("algsort.out");
 
 
void quick_sort_random(vector <int> &v, int left, int right)
{
    int l = left, r = right; // i si j
    int pivot_rand = v[rand() % (right - left + 1) + left];
 
    while( l < r)
    {
        while(v[l] < pivot_rand) l++;
        while(v[r] > pivot_rand) r--;
 
        if( l <= r)
        {
            swap(v[l++],v[r--]);
        }
    }
 
    if(r > left)
        quick_sort_random(v, left, r);
    if(l < right)
        quick_sort_random(v, l, right);
}
 
int main(){
    int N,x;
    
    vector<int> v;
 
    f>>N;
    for(int i = 0; i < N; ++i){
        f>>x;
        v.push_back(x);
    }
 
    quick_sort_random(v, 0, v.size()-1);
    for(auto nr: v) g<<nr<<' ';
    return 0;
}