Le nombre exact de comparaisons
Exercice · niveau 2 · informatique (MP2I/MPI), chapitre 15 — Diviser pour régner
Énoncé
Le tableau du cours annonce , et comparaisons pour , et . Établir la formule exacte du pire cas et la vérifier.
Corrigé
Notons le nombre maximal d'appels à la comparaison sur un tableau de cases. Un appel élimine la case médiane, et laisse au plus cases : et . D'où
Vérification en instrumentant la recherche et en la lançant sur toutes les valeurs possibles, présentes et absentes :
| pire cas mesuré | ||
|---|---|---|
| 1 | 1 | 1 |
| 7 | 3 | 3 |
| 8 | 4 | 4 |
| 15 | 4 | 4 |
| 16 | 5 | 5 |
| 10 | 10 | |
| 11 | 11 |
Les valeurs du cours sont donc exactes : et .
Le détail qui compte. mais : la formule saute d'une unité aux puissances de deux, pas ailleurs. Multiplier par ajoute presque exactement ; multiplier par ajoute . C'est la définition du logarithme, et c'est ce qui rend la dichotomie insensible à la taille des données.
Une conséquence pratique. Un tableau de entiers occupe gigaoctets et se cherche en comparaisons ; le simple fait de lire ce tableau une fois en coûterait . La dichotomie est plus rapide qu'un parcours de ce qu'elle cherche — c'est le seul algorithme de ce livre dont on puisse le dire.
Les autres exercices de ce chapitre Le cours du chapitre
Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.