Cod sursa(job #2355618)

Utilizator nicolaefilatNicolae Filat nicolaefilat Data 26 februarie 2019 10:45:12
Problema Sortare prin comparare Scor 80
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <time.h>

const int MAXN = 5e5 + 5;

using namespace std;

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

int n,v[MAXN];

int partitie(int left,int right){
    int j = left;
    for(int i = left; i < right; i++){
        if(v[i] < v[right]){
            swap(v[j],v[i]);
            j++;
        }
    }
    swap(v[right],v[j]);
    return j;
}
void quicksort(int left = 1,int right = n){
    if(left >= right)
        return;
    int pivot = partitie(left,right);
    quicksort(left,pivot - 1);
    quicksort(pivot + 1,right);
}

int main()
{
    in>>n;
    for(int i = 1; i <= n; i++)
        in>>v[i];
    srand(time(0));
    random_shuffle(v + 1,v + n + 1);
    quicksort();
    for(int i = 1; i <= n; i++)
        out<<v[i]<<" ";
    return 0;
}