Pagini recente » Cod sursa (job #2503058) | Cod sursa (job #1807685) | Cod sursa (job #2226384) | Cod sursa (job #2542920) | Cod sursa (job #2082437)
#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
if (r->inf > x)
insereaza(r->st, x);
else {
int t = rand();
if (t & 1) {
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;
}