Dictionnaires et tables de hachage : quiz de Terminale NSI
Publié le 7 novembre 2026 · Mis à jour le 7 novembre 2026 · Signaler une erreur
L'essentiel
Un dictionnaire (ou tableau associatif) range des couples clé : valeur ; chaque clé a au plus une valeur 3.
Une table de hachage utilise une fonction h pour calculer la position d'une donnée dans un tableau 2.
Recherche et insertion coûtent O(1) en moyenne avec une table de hachage, mais O(n) dans certains pires cas 3.
Un arbre équilibré garantit O(log n) et garde l'ordre des clés ; la table de hachage ne le garde pas 3.
Avant de commencer
Ce quiz porte sur les dictionnaires et les tables de hachage, deux notions que tu retrouves en spécialité NSI. Tu y vérifies que tu sais définir un dictionnaire, lire un petit code Python, calculer une position avec une fonction de hachage, et comparer une table de hachage à un arbre équilibré.
Les questions sont de formes variées : choix unique, choix multiples, vrai ou faux et réponses chiffrées. Pour chacune, essaie de répondre avant de lire la correction. L'explication te dit pourquoi la bonne réponse est juste, mais aussi pourquoi la réponse tentante est fausse : c'est souvent là que se joue la différence au Bac.
Quiz
15 questions · correction immédiate · ton score reste sur ton appareil.
Un dictionnaire est fait de couples clé : valeur : on retrouve une valeur grâce à sa clé 1. La première réponse décrit plutôt un tableau classique, où l'on accède par un indice. La dernière décrit une pile, structure différente.
C'est faux : chaque clé est liée à une valeur au plus 3. Si tu affectes une nouvelle valeur à une clé déjà présente, l'ancienne valeur est remplacée, elle ne s'ajoute pas.
On cherche un numéro à partir d'un nom : le nom joue le rôle de clé et le numéro celui de valeur 3. Inverser les rôles est tentant, mais cela supposerait de chercher un nom à partir d'un numéro, ce qui n'est pas l'usage normal de l'annuaire.
Tableau associatif et table d'association sont des noms équivalents de dictionnaire 3. Une file et une liste chaînée sont d'autres structures, organisées par ordre d'arrivée ou par maillons, et non par couples clé : valeur.
La valeur h(d) fixe l'adresse de la donnée dans la table 2. Elle ne trie rien : une table de hachage ne conserve d'ailleurs pas l'ordre des clés 3. Elle ne compte pas non plus les éléments.
On écrit 25=3×7+4, donc le reste vaut 4 et la clé se range à la position 4. L'erreur fréquente est de donner le quotient 3 au lieu du reste.
C'est faux : la table de hachage ne range pas les clés dans l'ordre croissant. Ce classement est au contraire un atout des arbres équilibrés 3. (Le dict de Python retient l'ordre d'insertion, ce qui ne veut pas dire un ordre trié.) La position d'une clé dépend du résultat de h, pas de sa valeur relative aux autres clés.
En moyenne, insertion et recherche coûtent O(1) avec une table de hachage 3 : la durée ne dépend pas du nombre d'éléments 1. O(log n) correspond au pire cas d'un arbre équilibré 3, et O(n) à un mauvais cas de certaines tables.
Une recherche en O(1) ne dépend pas du nombre d'éléments présents 1. Multiplier la durée par 1000 reviendrait à un parcours complet, ce qui serait une complexité en O(n), ce que la table de hachage évite en moyenne.
La clé "a" existe déjà : sa valeur passe de 1 à 5 sans créer d'entrée. La clé "c" est nouvelle : elle ajoute une entrée. On obtient les clés a, b et c, soit 3 entrées. Répondre 4 revient à croire que la réaffectation de "a" ajoute une ligne.
On a 11=1×7+4 et 25=3×7+4 : le reste est 4 dans les deux cas. Deux clés distinctes visent la même case, il faut donc un mécanisme pour garder les deux. Quand beaucoup de clés se heurtent ainsi, la recherche peut se dégrader jusqu'à O(n) 3. La fonction h reste utilisable, elle est simplement moins efficace.
Un arbre équilibré garantit O(log n) même dans le pire des cas, alors que certaines tables de hachage peuvent descendre à O(n) 3. L'avantage de la table de hachage porte sur le cas moyen, pas sur le pire cas.
Les arbres équilibrés gardent l'ordre des clés, ce qui permet le parcours dans l'ordre et la recherche d'une clé proche d'une valeur donnée, et ils offrent O(log n) dans le pire cas 3. Le O(1) en moyenne est au contraire l'atout de la table de hachage 3.
Les tables de hachage ont une représentation mémoire généralement plus compacte 3. L'affirmation inverse est donc fausse, et les valeurs sont bien stockées : sinon le dictionnaire ne servirait à rien.
Une fonction de hachage associe au document une empreinte, conservée à part : si le document est modifié, l'empreinte ne correspond plus 2. Ce n'est pas une compression, car l'empreinte ne permet pas de reconstituer le document.
Les questions qu'on se pose
Quelle est la différence entre un dictionnaire et une table de hachage ?
Un dictionnaire est un type de données abstrait : il décrit ce qu'on peut faire (associer une valeur à une clé, la retrouver) 1. Une table de hachage est une façon de le réaliser, avec une fonction h qui donne la position de chaque donnée 2. L'arbre équilibré est une autre réalisation possible 3.
Pourquoi la recherche est-elle en O(1) "en moyenne" seulement ?
Le O(1) vaut dans le cas courant, où les clés se répartissent bien dans la table 3. Si beaucoup de clés tombent dans la même case, la recherche peut se rapprocher de O(n) pour certaines tables 3. Un arbre équilibré, lui, garantit O(log n) même dans le pire cas 3.
Que retenir pour le Bac sur ce chapitre ?
Sache définir un dictionnaire par ses couples clé : valeur 1, expliquer le rôle de la fonction de hachage 2, manipuler un dictionnaire en Python et comparer table de hachage et arbre équilibré sur la complexité et l'ordre des clés 3. Entraîne-toi aussi à calculer une position avec un reste de division, comme dans ce quiz.