Au programme de ce chapitre
- I. Le principe de la dichotomie : recherche dans un tableau trié
- II. Le tri fusion
- III. Complexité du tri fusion
- Savoir-faire
- Exercices types corrigés
- Teste-toi — vrai ou faux ?
- Pièges fréquents et astuces
- À retenir
La définition à retenir
Un exemple corrigé
python3, sur un tableau trié de 12 éléments :
>>> def recherche_dichotomique(t, x):
... gauche, droite = 0, len(t) - 1
... nb_comparaisons = 0
... while gauche <= droite:
... nb_comparaisons += 1
... milieu = (gauche + droite) // 2
... if t[milieu] == x:
... return milieu, nb_comparaisons
... elif t[milieu] < x:
... gauche = milieu + 1
... else:
... droite = milieu - 1
... return -1, nb_comparaisons
...
>>> t = [3, 7, 9, 12, 18, 23, 29, 34, 41, 47, 52, 58]
>>> recherche_dichotomique(t, 34)
(7, 4)
>>> recherche_dichotomique(t, 10)
(-1, 3)
La valeur 34 est trouvée à l'indice 7 en seulement 4 comparaisons, alors qu'une recherche séquentielle en aurait demandé 8. Pour la valeur 10, absente du tableau, la fonction conclut à son absence en 3 comparaisons seulement, bien loin des 12 éléments du tableau.Les erreurs fréquentes à éviter
L'astuce du prof
Exercices corrigés
Cherche d'abord seul, puis ouvre la correction.
Exercice 1
Voir la correction
Exercice 2
