informatique (MP2I/MPI) · Chapitre 15 · Application directe du cours
Ce que la rencontre au milieu énumère vraiment
Diviser pour régner · niveau 2
Énoncé
Compter le nombre de sommes effectivement construites par l'algorithme de rencontre au milieu, et le comparer à l'exhaustif. Que devient-il si est impair ?
Corrigé
L'algorithme construit sommes à gauche et à droite, soit environ en tout — au lieu de . Mesuré sur entiers :
| sommes construites | rapport à l'exhaustif | |
|---|---|---|
| exhaustif ( masques) | ||
| rencontre au milieu | 512 |
Le rapport vaut , soit pour . Pour , il vaut : c'est le chiffre du cours, retrouvé.
Si est impair, n / 2 tronque et la première moitié a un élément de moins : contre . Le déséquilibre coûte un facteur sur le côté le plus gros, ce qui est sans importance. Ce qui importerait, ce serait de découper contre : on retomberait sur , c'est-à-dire sur l'exhaustif. Le partage en deux moitiés égales n'est pas un détail d'écriture, c'est l'endroit où l'algorithme gagne : est minimal en .
Où le temps passe réellement. Construire les sommes coûte ; les trier coûte ; les recherches dichotomiques coûtent également. C'est donc le tri et les recherches qui dominent, d'où le du annoncé.
Et la mémoire. La rencontre au milieu stocke sommes ; à , cela fait entiers, soit méga-octets — praticable. À , ce serait entiers, soit gigaoctets. Cette méthode échange du temps contre de la mémoire, et c'est la mémoire qui devient la limite.