Une table de lignes, une autre de
Exercice de TD · niveau 2 · NSI (première), chapitre 6 — Traiter des données en tables · Trier et fusionner
Énoncé
Une table de lignes, une autre de . Combien de comparaisons effectue une fusion qui, pour chaque ligne de la première, parcourt toute la seconde ? Et la version ci-dessus, qui construit d'abord un dictionnaire d'index ?
Corrigé
Le calcul. La fusion naïve compare chaque ligne de la première à chaque ligne de la seconde :
La fusion indexée fait deux parcours : insertions dans le dictionnaire, puis recherches, soit
parce qu'une recherche dans un dictionnaire ne dépend pas de sa taille (chapitre 5). Le rapport est de 3 333 : la version naïve fait plus de trois mille fois le travail de l'autre.
La mesure. On compte les opérations pour de vrai, sur des tailles doublantes, avec une seconde table deux fois plus courte.
| naïve | rapport | indexée | rapport | |
|---|---|---|---|---|
| --- | --- | |||
Les rapports confirment les deux lois. Quand double, la version naïve est multipliée par exactement : c'est la signature du coût quadratique. La version indexée est multipliée par : coût linéaire. Ce ne sont pas des approximations, ce sont les valeurs mesurées, parce que les deux compteurs sont exacts — d'un côté, de l'autre.
Ce que le rapport permet. Mesurer un seul ne prouve rien : pourrait être n'importe quoi. C'est la suite des rapports qui identifie la loi, et c'est pourquoi il faut toujours mesurer au moins trois tailles.
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.