Cod sursa(job #2078382)

Utilizator mariusn01Marius Nicoli mariusn01 Data 29 noiembrie 2017 15:05:38
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.95 kb
#include <fstream>
#include <ctime>
#include <stdlib.h>

using namespace std;

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

struct nod {
    int inf;
    nod *st;
    nod *dr;
};

nod *r;
int n, i, x, p, v[500010];

void insereaza(nod *&r, int x) {
    if (r == NULL) {
        r = new nod;
        r->inf = x;
        r->st = r->dr = NULL;
    } else {
        if (r->inf < x)
            insereaza(r->dr, x);
        else
            insereaza(r->st, x);
    }
}

void afiseaza(nod *r) {
    if (r) {
        afiseaza(r->st);
        fout<<r->inf<<" ";
        afiseaza(r->dr);
    }
}

int main() {
    ifstream fin ("algsort.in");
    ofstream fout("algsort.out");

    srand(time(0));

    fin>>n;

    for (i=1;i<=n;i++) {
        fin>>v[i];
        p = 1 + rand()%i;
        swap(v[p], v[i]);
    }

    for (i=1;i<=n;i++) {
        insereaza(r, v[i]);
    }

    afiseaza(r);

    return 0;
}