L'algorithme
On souhaite rédiger cet algorithme en Python. On nommera donc def recherche_dichotomique(l, v) la fonction
pour rechercher une valeur v dans une liste l précédemment triée. Cette fonction devra renvoyer un booléen indiquant
si la valeur est présente ou absente de la liste.
On va ensuite délimiter la position du tableau avec deux variables g et d qui indiqueront les indices de la
délimitation :
- Pour tout
iinférieur àg,l[i] < v - Pour tout
isupérieur àd,l[i] > v
On va alors répéter le principe de la dichotomie, tant que la valeur de v n'est pas trouvée dans la liste, ou tant
qu'il y a toujours des éléments entre g et d. On doit pour cela trouver l'élément central entre g et d,
calculable avec la formule \(\frac{g+d}{2}\). On fera attention à obtenir un entier comme résultat.
Une fois cette valeur trouvée, nommons-la m et comparons la valeur associée à son indice à v :
- Si
l[m] == v, alors on a trouvévet on renvoieTrue. - Si
l[m] < v, alors la bornegest mise à jour, et on recommence. - Si
l[m] > v, alors la bornedest mise à jour, et on recommence.
Si g et d se retrouvent inversés (c'est-à-dire que g > d) alors le programme doit renvoyer False.