Cod sursa(job #2079606)

Utilizator RaduMirceaAndreiRadu Mircea Andrei RaduMirceaAndrei Data 1 decembrie 2017 16:30:01
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.95 kb
# include <fstream>
# include <stdlib.h>
# include <time.h>
# define DIM 500010
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
struct nod{
    int val;
    nod *st,*dr;
} *tata;
int v[DIM],n,i,poz;
void adauga(nod *&nc,int el){
    if(nc==NULL){
        nc=new nod;
        nc->val=el;
        nc->st=NULL;
        nc->dr=NULL;
        return;
    }
    if(el<=nc->val)
        adauga(nc->st,el);
    else
        adauga(nc->dr,el);
}
void afisare(nod *nc){
    if(nc!=NULL){
        afisare(nc->st);
        fout<<nc->val<<" ";
        afisare(nc->dr);
    }
}
int main () {
    fin>>n;
    for(i=1;i<=n;i++)
        fin>>v[i];
    srand(time(0));
    for(i=n;i>=2;i--){
        poz=rand()%(i-1)+1;
        swap(v[i],v[poz]);
    }
    tata=new nod;
    tata->val=v[1];
    tata->st=NULL;
    tata->dr=NULL;
    for(i=2;i<=n;i++)
        adauga(tata,v[i]);
    afisare(tata);
    return 0;
}