`:
`;
`!
`?
|
Des arbres binaires peuvent être representés par des structures de noeuds,
chaque noeud possédant un champ valeur:entier et deux champs
gauche et droit qui seront des pointeurs vers les sous-arbres
gauche et droit (ou nul).
On peut définir un ordre sur les arbres binaires tel que l'arbre vide précède
tout autre arbre et, entre deux arbres non vides, l'un précède l'autre si
sa valeur est inférieur, ou (dans le cas de deux valeurs égales) son sous-arbre
gauche précède celui de l'autre, ou (dans les cas de deux sous-arbres gauches égaux)
son sous-arbre droit précède celui de l'autre.
Ecrire en exalgo
On veut calculer la probabilité qu'un arbre binaire de recherche aléatoire de 1000 noeuds
ait son hauteur strictement inférieure à 50.
Vous devrez utiliser le fait que le sous-arbre gauche de cet arbre a un nombre
g de noeuds avec probabilité 1/n pour tout g entre 0 et n-1.
Déterminer (en fonction de n à O( ) près) le temps de calcul des boucles
(i), (ii), (iii), (iv) et (v)
(P() est une procédure dont le temps de calcul est constant.)
pour i allant de 1 a n*n par pas de 1 faire P(); finpour;
pour i allant de 1 a n par pas de 1 faire
pour j allant de 1 a i par pas de 1 faire
pour k allant de j a i par pas de 1 faire P()
finpour
finpour;
finpour;
i:=n;
tant que i>1 faire
si i mod 2 = 0 alors
i:=i/2
sinon
i:=i-1
finsi
fintantque;
pour i allant de 1 a n par pas de 1 faire
j:=1;
tant que i+j<n faire j:=j*2;
fintantque;
finpour;
i:=1;
tant que i<n*n faire
i:=i+1+i/n /* arrondi vers le bas */
fintantque