Cod sursa(job #2301013)

Utilizator alittlezzCazaciuc Valentin alittlezz Data 12 decembrie 2018 15:17:21
Problema Sortare prin comparare Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.92 kb
#include<bits/stdc++.h>
using namespace std;

void q_sort(vector <int> &v, int lf, int rg){
    if(lf >= rg){
        return;
    }
    int pivot = (lf + rg) / 2;
    int i = lf;
    int j = rg;
    while(i <= j){
        while(i <= j && v[i] <= v[pivot]){
            i++;
        }
        while(i <= j && v[pivot] <= v[j]){
            j--;
        }
        if(i <= j){
            swap(v[i], v[j]);
        }else{
            if(i > j){
                i = j;
            }
            swap(v[pivot], v[i]);
            break;
        }
    }
    q_sort(v, lf, i - 1);
    q_sort(v, i + 1, rg);
}

int main(){
    ifstream fin("algsort.in");
    ofstream fout("algsort.out");
    int n;
    fin >> n;
    vector <int> v(n);
    for(int i = 0;i < n;i++){
        fin >> v[i];
    }
    q_sort(v, 0, n - 1);
    for(int i = 0;i < n;i++){
            fout << v[i] << ' ';
    }
    return 0;
}