Cod sursa(job #2988309)

Utilizator TeddyDinutaDinuta Eduard Stefan TeddyDinuta Data 4 martie 2023 00:00:00
Problema Sortare prin comparare Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.7 kb
#include <bits/stdc++.h>

using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");
int n,a[500100];

void quick_sort(int l, int r, int v[])
{   
    int pos = (l + r) / 2;

    int piv = v[pos];
    int i = l, j = l;
    
    swap(v[pos], v[r]);
    while (j < r) {
        if (v[j] <= piv) {
            swap(v[i], v[j]);
            i++;
        }
        j++;
    }
    swap(v[i], v[r]);

    if (i + 1 < r)
        quick_sort(i + 1, r, v);
    if (i - 1 > l)
        quick_sort(l, i - 1, v);
}

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

    for (int i = 1; i <= n; i++)
        out<<a[i]<<" ";

    out<<'\n';
    return 0;
}