Cod sursa(job #2763487)

Utilizator ptudortudor P ptudor Data 14 iulie 2021 12:57:53
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.92 kb


#include <bits/stdc++.h>


using namespace std;

#define MOD 1000000007



int v[500500];



void qsort(int l, int r) {

    int i = l, j = r, p = v[rand() % (r - l + 1) + l];

    while (i < j) {

        while (v[i] < p) ++i;

        while (v[j] > p) --j;

        if (i <= j) {

            swap(v[i], v[j]);

            ++i;

            --j;

        }

    }

    if (i < r) qsort(i, r);

    if (j > l) qsort(l, j);

}



int main() {

//    freopen("input.txt", "r", stdin);

//    freopen("output.txt", "w", stdout);



    freopen("algsort.in", "r", stdin);

    freopen("algsort.out", "w", stdout);

    srand(time(NULL));

    int n;

    scanf("%d", &n);

    for (int i = 0; i < n; ++i) {

        scanf("%d", &v[i]);

    }

    qsort(0, n-1);



    for (int i = 0; i < n; ++i) {

        printf("%d ", v[i]);

    }



    return 0;

}