Cod sursa(job #2739628)

Utilizator SpacecraftSima Radu Spacecraft Data 9 aprilie 2021 00:21:32
Problema Sortare prin comparare Scor 40
Compilator cpp-32 Status done
Runda Arhiva educationala Marime 0.91 kb
#include <iostream>
#include <stdio.h>
#include <fstream>

using namespace std;

int partition(int arr[], int left, int right) {
    int i = left, pivot = arr[right];
    for(int j = left; j <= right - 1; j++) {
        if(arr[j] < pivot) {
            swap(arr[j], arr[i]);
            i++;
        }
    }
    swap(arr[i], arr[right]);
    return i;
}

void qsort(int arr[], int left, int right) {
    if(left >= right)
        return;
    int poz = partition(arr, left, right);
    qsort(arr, left, poz - 1);
    qsort(arr, poz + 1, right);
}

int showArray(int arr[], int n, ofstream& out) {
    for(int i = 0; i < n; i++) {
        out << arr[i] << " ";
    }
    out << endl;
}

int main() {
    ifstream in("algsort.in");
    ofstream out("algsort.out");

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

    qsort(v, 0, n - 1);
    showArray(v, n, out);
    return 0;
}