informatique (MP2I/MPI) · Chapitre 15 · Application directe du cours
Le nombre exact de comparaisons
Diviser pour régner · niveau 2
É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.
Exercices semblables
- Pourquoi le milieu ne s'écrit pas corrigé
- Le comptage des inversions du cours donne 1 sur une liste triée corrigé
- Ce que la rencontre au milieu énumère vraiment corrigé
- Problème — Le tri par partition-fusion sur tableaux : coût exact et stabilité corrigé
- Problème — Élever à une puissance, et Fibonacci en corrigé