Adloun

Pourquoi l'anti-jointure emploie-t-elle un set

Exercice supplémentaire · niveau 2 · NSI (première), chapitre 6 — Traiter des données en tables · Mesurer le coût plutôt que l'annoncer

Énoncé

Pourquoi l'anti-jointure emploie-t-elle un set ? Mesurer le coût du test d'appartenance dans une liste, sur des tailles doublantes, et conclure.

Corrigé

La mesure. On compte les comparaisons pour tests d'appartenance dans une liste de éléments, dans le pire cas — la valeur cherchée est toujours la dernière.

comparaisonsrapport
---

Le coût d'un test est linéaire en : c'est le parcours séquentiel du chapitre 7. Avec un set ou un dictionnaire, il ne dépend pas de (chapitre 5).

La conséquence sur l'anti-jointure. Avec une liste, chacun des tests coûte comparaisons : le total est , quadratique — exactement ce que la jointure indexée cherchait à éviter. Avec un ensemble, le total est . Un seul caractère de différence dans le code — accolades au lieu de crochets — change la loi de coût.

Ce que la mesure ne montre pas. Elle mesure le pire cas, valeur en dernière position. Si les valeurs cherchées sont souvent en tête, la liste s'en tire bien mieux en moyenne — mais la loi de croissance, elle, reste linéaire.

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.