Cod sursa(job #2076888)

Utilizator AndreiVisoiuAndrei Visoiu AndreiVisoiu Data 27 noiembrie 2017 12:44:04
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <fstream>

using namespace std;

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

int v[500002], n, minim, c;

int gasestePivot(int s, int d) {
    int pivot = v[d], c = 0, i = s-1;
    for(int j = s; j < d; j++) {
        if(v[j] <= pivot) {
            i++;
            c = v[i];
            v[i] = v[j];
            v[j] = c;
        }
    }
    c = v[i+1];
    v[i+1] = v[d];
    v[d] = c;
    return i+1;
}

int quickSort(int s, int d) {
    if(s < d) {
        int pivot = gasestePivot(s, d);

        quickSort(s, pivot-1);
        quickSort(pivot+1, d);
    }
}

int main()
{
    in >> n;
    for(int i = 0; i < n; i++) {
        in >> v[i];
    }

    quickSort(0, n-1);

    for(int i = 0; i < n; i++) {
        out << v[i] << " ";
    }
    return 0;
}