Cod sursa(job #1469240)

Utilizator alexandru.ghergutAlexandru-Gabriel Ghergut alexandru.ghergut Data 7 august 2015 19:17:49
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <iostream>
#include <fstream>
#include <time.h>
#include <cstdlib>

using namespace std;

int n, v[500000];

void qqsort(int st, int dr) {
    int i = st, j = dr, p, r;
    r = rand() % (dr - st + 1) + st;
    p = v[r];

    while (i < j) {
        while (v[i] < p) i++;
        while (v[j] > p) j--;
        if (i <= j){
            r = v[j];
            v[j] = v[i];
            v[i] = r;
            ++i;
            --j;
        }
    }
    if (st < j)qqsort(st, j);
    if (i < dr)qqsort(i, dr);
}

int main() {
    ifstream f("algsort.in");
    ofstream g("algsort.out");

    int i;
    f >> n;
    for (i = 0; i < n; ++i)
        f >> v[i];

    srand(time(NULL));
    qqsort(0, n - 1);

    for (i = 0; i < n; ++i)
        g << v[i] << " ";
    f.close();
    g.close();
    return 0;
}