Adloun

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ïverapportindexéerapport
------

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.