Cod sursa(job #2434616)

Utilizator andrei42Oandrei42O andrei42O Data 2 iulie 2019 12:48:07
Problema Sortare prin comparare Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("podm.in");
ofstream g("podm.out");
const int N = 500010;
int n, v[N];
void quick_sort(int, int);
int main()
{
    srand(time(0));
    f >> n;
    for(int i = 1; i <= n; i++)
        f >> v[i];
    quick_sort(1, n);
    for(int i = 1; i <= n; i++)
        g << v[i] << ' ';
    return 0;
}
void quick_sort(int left, int right)
{
    if(left>=right)return;
    int mi = left+rand()%(right-left+1), st = left, dr = right;
    int pivot = v[mi];
    do
    {
        while(v[st] < pivot)
            st++;
        while(v[dr] > pivot)
            dr--;
        if(st <= dr)
        {
            swap(v[st], v[dr]);
            st++;
            dr--;
        }
    }
    while(st <= dr);
    quick_sort(left, dr);
    quick_sort(st, right);
}