Cod sursa(job #2917528)

Utilizator daniel23Malanca Daniel daniel23 Data 5 august 2022 16:04:05
Problema Sortare prin comparare Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <fstream>

std::ifstream in("algsort.in");
std::ofstream out("algsort.out");

int n, arr[500000];

int partition(int* arr, int l, int r) {
    int val = arr[l];
    int dr = r;
    int i = l + 1;
    while (i <= dr) {
        if (arr[i] < val)
            std::swap(arr[i], arr[i - 1]), i++;
        else
            std::swap(arr[i], arr[dr--]);
    }

    return dr;
}

void quicksort(int* arr, int l, int r) {
    if (l >= r) return;

    int mid = partition(arr, l, r);
    quicksort(arr, l, mid - 1);
    quicksort(arr, mid + 1, r);
}

int main() {
    in >> n;
    for (int i = 0; i < n; i++) in >> arr[i];

    quicksort(arr, 0, n - 1);

    for (int i = 0; i < n; i++) out << arr[i] << ' ';
}