Cod sursa(job #2988184)

Utilizator TeddyDinutaDinuta Eduard Stefan TeddyDinuta Data 3 martie 2023 19:03:08
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.69 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[])
{
    
    srand(time(NULL));
    int pos = (l + r) / 2;

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

    if (i < r)
        quick_sort(i, r, v);

    if (j > l)
        quick_sort(l, j, 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;
}