Cod sursa(job #1765883)

Utilizator alexandru.ghergutAlexandru-Gabriel Ghergut alexandru.ghergut Data 27 septembrie 2016 08:20:22
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include <fstream>

using namespace std;

void quickSort(int left, int right, int arr[])
{
    int pivot = arr[left + (right - left) / 2];
    int i = left, j = right;

    while (i <= j)
    {
        while (arr[i] < pivot)
            i++;
        while (arr[j] > pivot)
            j--;
        if (i <= j)
        {
            swap(arr[i], arr[j]);
            i++;
            j--;
        }
    }

    if (left < j)
        quickSort(left, j, arr);
    if (i < right)
        quickSort(i, right, arr);
}

int main()
{
    int N, i;
    ifstream f("algsort.in");
    f >> N;
    int arr[N];
    for (i = 0; i < N; i++)
        f >> arr[i];
    quickSort(0, N - 1, arr);
    f.close();

    ofstream g("algsort.out");
    for (i = 0; i < N; i++)
        g << arr[i] << ' ';
    g.close();
    return 0;
}