Cod sursa(job #2785668)

Utilizator qubitrubbitQubit Rubbit qubitrubbit Data 19 octombrie 2021 10:49:28
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.91 kb
#include <fstream>
#include <vector>
using namespace std;

ifstream fin("algsort.in");
ofstream fout("algsort.out");

int n, arr[500000];

void quickSort(int a[], int left, int right)
{
    int i = left;
    int j = right;
    int x = a[(left + right) / 2];
    while (i < j)
    {
        while (i < right && a[i] < x)
            ++i;
        while (j > left && a[j] > x)
            --j;
        if (i <= j)
        {
            int temp = a[i];
            a[i] = a[j];
            a[j] = temp;
            ++i;
            --j;
        }
    }
    if (left < j)
        quickSort(a, left, j);
    if (i < right)
        quickSort(a, i, right);
}

int main()
{
    fin >> n;
    for (int i = 0; i < n; ++i)
    {
        fin >> arr[i];
    }
    quickSort(arr, 0, n - 1);
    for (int i = 0; i < n; ++i)
    {
        fout << arr[i] << " ";
    }
    fout.flush();
    return 0;
}