Cod sursa(job #3338427)

Utilizator TimofeiFilipTimofei Filip Emanuel TimofeiFilip Data 3 februarie 2026 09:57:24
Problema Sortare prin comparare Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.88 kb
#include<bits/stdc++.h>
using namespace std;

void QuickSort(vector<int> &v, int left, int right){
    int pivot = v[left];
    int valori_mai_mici = 0;
    for(int i = left; i <= right; i++){
        valori_mai_mici += (v[i] < pivot);
    }
    swap(v[left], v[left + valori_mai_mici]);
    for(int i = left; i <= pivot + valori_mai_mici - 1; i++){
        if(v[i] <= v[right - i + 1]) continue;
        swap(v[i], v[right - i + 1]);
    }
    QuickSort(v, left, left + valori_mai_mici - 1);
    QuickSort(v, left + valori_mai_mici + 1, right);
}
int main(){
    freopen("algsort.in", "r", stdin);
    freopen("algsort.out", "w", stdout);
    
    
    int n;
    scanf("%d", &n);
    
    vector<int> v(n + 1, 0);
    for(int i = 1; i <= n; i++){
        scanf("%d", &v[i]);
    }
    
    QuickSort(v, 1, n);
    
    for(int i = 1; i <= n; i++){
        printf("%d ", v[i]);
    }
    return 0;
}