Cod sursa(job #3206034)

Utilizator TeddyDinutaDinuta Eduard Stefan TeddyDinuta Data 21 februarie 2024 14:52:26
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 kb
#include <bits/stdc++.h>

using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");
int n, a[500005];
void quick_sort(int l, int r) {
   int m = (l + r) / 2;
   int piv = a[m];

   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);

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

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

    return 0;
}