8Fermer10
BaruchLe 07/07/2008 à 20:02
La recherche par dichotomie ?

Exemple :

On veut créer un code qui permet, suivant la variable A, d'aller au label correspondant. C'est donc un système de labels conditionnels.
A peut prendre les valeurs 1,2,3 et 4.

Recherche dans l'ordre :

If A=1
Goto 1
If A=2
Goto 2
If A=3
Then
Goto 3
Else
Goto 4
End


Le nombre moyen de tests avant d'aller au label est 2.25

Recherche par dichotomie :

If A<=2
Then

If A=1
Then
Goto 1
Else
Goto 2
End

Else

If A=3
Then
Goto 3
Else
Goto 4
End

End


Ici le nombre moyen de tests est 2.

Bien sûr, ce n'est pas toujours la meilleure solution. La recherche par dichotomie attribue pour chaque valeur de A le même nombre de tests. La recherche dans l'ordre attribue un nombre de tests variant, on peut donc l'utiliser si la fréquence d'utilisation des labels varie, en ordonnant les valeurs de A testées suivant leur fréquence d'utilisation.