Voici l'algorithme de recherche dichotomique vu dans le cours
def recherche_dichotomique(v, T):
"""renvoie une position de v dans le tableau T, supposé trié,
et None si v ne s'y trouve pas"""
g = 0
d = len(T) - 1
while g <= d:
m = (g + d) // 2
if v < T[m]:
d = m - 1
elif v > T[m]:
g = m + 1
else:
return m
return None
Exercice 1
Quelles sont les instructions à écrire pour vérifier vos réponses aux exercices 9 et 10 ?
Exercice 2
recherche_dichotomique(v, T)
pour afficher le nombre total de tours de boucle effectués par l'algorithme.
Exercice 3
Ecrivez une fonction nb_de_tours(n)
qui renvoie le plus petit entier k
tel que 2^k > n
, c'est-à-dire le nombre maximal de valeurs examinées par la recherche dichotomique dans un tableau de taille n
.