Cod sursa(job #2907132)

Utilizator CristianCazacuCazacu Cristian - Gabriel CristianCazacu Data 28 mai 2022 21:04:11
Problema Sortare prin comparare Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.91 kb
#include <iostream>
#include <fstream>

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)
        {
            i++;
            int aux = arr[i];
            arr[i] = arr[j];
            arr[j] = aux;

        }
    }
    int aux = arr[i+1];
    arr[i+1] = arr[high];
    arr[high] = aux;

    return i + 1;
}

void quickSort(int arr[], int low, int high) {
    if (low < high) {
        int pi = partition(arr, low, high);

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

int main()
{
    std::ifstream f("algsort.in");
    std::ofstream g("algsort.out");

    int arr[500000];
    int n;
    f >> n;
    for(int i=0;i<n;++i)
        f >> arr[i];
    quickSort(arr, 0, n - 1);
    for(int i=0;i<n;++i)
        g << arr[i] << " ";
    f.close();
    g.close();
    return 0;
}