Python (école d'ingénieur) · Chapitre 6 · Exercice
Complexité de la recherche dichotomique
Complexité algorithmique
Énoncé
Démontrer par récurrence que la recherche dichotomique sur une liste triée de taille effectue au plus comparaisons dans le pire des cas.
def dichotomie(L, x):
g, d = 0, len(L) - 1
while g <= d:
m = (g + d) // 2
if L[m] == x:
return m
elif L[m] < x:
g = m + 1
else:
d = m - 1
return -1Corrigé
Soit le nombre maximal de comparaisons effectuées pour une liste de taille .
- Initialisation : Pour , une seule comparaison suffit. La propriété est vraie.
- Hérédité : Supposons la propriété vraie pour toutes les tailles strictement inférieures à . Pour une liste de taille , on effectue une comparaison avec l'élément central . Dans le pire des cas, l'élément n'est pas trouvé et on poursuit la recherche dans l'un des deux sous-tableaux, chacun ayant une taille maximale de . La relation de récurrence s'écrit : Par hypothèse de récurrence : Puisque , nous avons : En injectant cette inégalité : La propriété est démontrée au rang .
100 % gratuit
La suite du chapitre est sur Adloun
- 7 autres exercices corrigés dans ce chapitre, et 7 à chercher avec le tuteur
- Les 2 QCM du chapitre, le premier sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.