Cod sursa(job #2275586)

Utilizator dianamichesaRosu Diana Michesa dianamichesa Data 3 noiembrie 2018 12:23:25
Problema Sortare prin comparare Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.94 kb
#include <iostream>
#include <fstream>
#include <stdlib.h>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
const int N = 500001;
int n, v[N];
int partitie (int v[], int st, int dr) {
    int k = rand() % dr;
    if(k < st)
        k += st;
    swap (v[k], v[dr]);
    int pivot = v[dr];
    int i = st - 1;
    for(int j = st; j < dr; j ++) {
        if(v[j] < pivot) {
            i ++;
            swap (v[i], v[j]);
        }
    }
    swap (v[i + 1], v[dr]);
    return i + 1;
}
void quicksort (int v[], int st, int dr) {
    if(st < dr) {
        int part = partitie (v, st, dr);
        quicksort (v, st, part - 1);
        quicksort (v, part + 1, dr);
    }
}
void afisare (int v[]) {
    for(int i = 0; i < n; i ++)
        g << v[i] << ' ';
}
int main()
{
    f >> n;
    for(int i = 0; i < n; i ++)
        f >> v[i];
    quicksort (v, 0, n - 1);
    afisare (v);
    return 0;
}