Pagini recente » Cod sursa (job #1063652) | Cod sursa (job #1834168) | Cod sursa (job #2227112) | Monitorul de evaluare | Cod sursa (job #2078437)
#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;
}