Cod sursa(job #2874964)

Utilizator LeperBearMicu Alexandru LeperBear Data 20 martie 2022 16:07:35
Problema Sortare prin comparare Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.89 kb
#include <bits/stdc++.h>
using namespace std;

int partition (int *arr, int low, int high) {
    int pivot = arr[high];  
 
    int i = (low - 1);

    for (int j = low; j <= high - 1; j++)
        if (arr[j] < pivot)
            swap(arr[++i], arr[j]);

    swap(arr[++i], arr[high]);
    return i;
}

void quick_sort(int *arr, int low, int high) {
    if (low < high) {

        int pi = partition(arr, low, high);

        quick_sort(arr, low, pi - 1);
        quick_sort(arr, pi + 1, high);
    }
}

int main() {
    int n;
    vector<int> v;
    ifstream fin;
    fin.open("algsort.in");
    ofstream fout;
    fout.open("algsort.out");
    fin >> n;
    for (int i = 0; i < n; i++) {
        int x;
        fin >> x;
        v.push_back(x);
    }
    quick_sort(v.data(), 0, v.size() - 1);
    for (int i = 0; i < v.size(); i++)
        fout << v[i] << " ";
    fin.close();
    fout.close();
    return 0;
}