Cod sursa(job #2553544)

Utilizator Briana_NeaguNeagu Briana Briana_Neagu Data 22 februarie 2020 09:31:35
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <bits/stdc++.h>

using namespace std;

ifstream f("algsort.in");
ofstream g("algsort.out");

vector <int> a;
void quickSort(int left, int right, int n)
{
    if (left >= right)
        return;
    int i = left, j = right;
    int pivot = a[left + (rand() % (right - left + 1))];
    while (i <= j)
    {
       while (i <= right && a[i] < pivot)
           i ++;
       while (j >= left && a[j] > pivot)
           j --;
       if (i <= right && j >= left && i <= j)
       {
           swap(a[i], a[j]);
           i ++;
           j --;
       }
    }
    quickSort(left, j, n);
    quickSort(i, right, n);
}

int main()
{
    int n;
    f >> n;
    a.resize(n + 1);
    for (int i = 1; i <= n; ++ i)
        f >> a[i];
    srand(time(NULL));
    quickSort(1, n, n);
    for (int i = 1; i <= n; ++ i)
        g << a[i] << " ";
}