Cod sursa(job #2897340)

Utilizator alisavaAlin Sava alisava Data 3 mai 2022 15:06:46
Problema Sortare prin comparare Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("algsort.in");
ofstream fout("algsort.out");
int v[500005];
void Quicksort(int st, int fn, int *v)
{

    if(st >= fn)
        return;
    int pivot;
    pivot = rand() % (fn - st + 1) + st;
    swap(v[pivot], v[fn]);

    int cnt = st;

    for(int i = st; i <= fn; i++)
        if(v[i] < v[fn])
            swap(v[i], v[cnt++]);
    swap(v[cnt], v[fn]);

    Quicksort(st, cnt - 1, v);
    Quicksort(cnt + 1, fn, v);


}


int main()
{
    int n;
    srand(time(0));
    fin >> n;
    for(int i = 1; i <= n; i++)
        fin >> v[i];
    Quicksort(1, n, v);
    for(int i = 1; i <= n; i++)
        fout << v[i] << " ";




    return 0;
}