Quatre besoins, quelle structure ?
Exercice · niveau 2 · informatique (MP2I/MPI), chapitre 12 — Tableaux associatifs, hachage et sérialisation
Énoncé
Pour chacun de ces quatre besoins, choisir entre liste d'association, arbre binaire de recherche et table de hachage, et justifier en une phrase.
- Un correcteur orthographique : « ce mot est-il dans le dictionnaire ? », mots, des millions d'interrogations.
- Un classement de joueurs, à afficher trié par score, mis à jour à chaque partie.
- Un annuaire de constantes physiques, écrit une fois, lu de temps en temps.
- Un moteur de complétion : « quels mots commencent par
info? »
Corrigé
- Table de hachage. On ne demande que l'appartenance, jamais l'ordre : c'est exactement le contrat du hachage, et son moyen est ici décisif. Mesuré sur mots : microseconde par recherche, contre microsecondes pour une liste d'association — un facteur .
- Arbre de recherche. Le mot « trié » décide : le parcours infixe donne le classement pour rien, en , quand la table oblige à tout extraire puis trier en . Mesuré sur clés : s par l'arbre contre s par la table, soit un facteur — et il croît en .
- Liste d'association. Douze éléments : vaut . Une table de hachage y coûterait un calcul de haché à chaque accès, une allocation de tableau, et surtout un fichier de plus à lire. La complexité asymptotique ne dit rien à : on choisit ici la structure la plus simple à écrire et à relire.
- Aucune des trois. « Commence par » n'est ni une égalité ni une comparaison de clés entières : c'est une question sur les préfixes. Un ABR sur l'ordre alphabétique la rend possible — les mots de préfixe
infoforment un intervalle, qu'on extrait en — mais la structure faite pour cela est l'arbre préfixe (trie) du chapitre chap:textes, où l'on descend une lettre par niveau.
La question à se poser, et elle vient avant toutes les autres : de quoi ai-je besoin en plus de l'égalité ? Rien, c'est le hachage. Un ordre, c'est l'arbre. Une structure interne à la clé, c'est un arbre préfixe. La complexité ne départage qu'ensuite.
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.