Cod sursa(job #2078437)

Utilizator Ruxandra985Nanu Ruxandra Laura Ruxandra985 Data 29 noiembrie 2017 16:03:36
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.89 kb
#include <cstdio>
#include <iostream>
#include <time.h>
#include <stdlib.h>

using namespace std;
int v[500001];
FILE *fin=fopen ("algsort.in","r");
FILE *fout=fopen ("algsort.out","w");
struct nod{
    int info;
    nod *st;
    nod *dr;
};
nod *r;
void adaug (int x,nod *&r){
    if (r!=NULL){
        if (x<r->info)
            adaug (x,r->st);
        else adaug (x,r->dr);
    }
    else {
        r=new nod;
        r->info=x;
        r->st=r->dr=NULL;
    }
}
void afis (nod *r){
    if (r!=NULL){
        afis (r->st);
        fprintf (fout,"%d ",r->info);
        afis (r->dr);
    }
}
int main()
{
    int n,i,poz;
    fscanf (fin,"%d",&n);
    for (i=1;i<=n;i++)
        fscanf (fin,"%d",&v[i]);
    for (i=n;i>=2;i--){
        poz=1+rand()%i;
        swap(v[i],v[poz]);
    }
    for (i=1;i<=n;i++)
        adaug (v[i],r);
    afis (r);
    return 0;
}