Cod sursa(job #2301397)

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

vector <int> v;

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

int main(){
    freopen("algsort.in", "r", stdin);
    freopen("algsort.out", "w", stdout);
    int n;
    scanf("%d",&n);
    for(int i = 0;i < n;i++){
        int x;
        scanf("%d",&x);
        v.emplace_back(x);
    }
    q_sort(0, n - 1);
    for(int i = 0;i < n;i++){
        printf("%d ",v[i]);
    }
    return 0;
}