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.