Adloun

Tableaux associatifs, hachage et sérialisation

Cours · informatique (MP2I/MPI), chapitre 12 · MP2I et MPI · le début du chapitre, la suite sur Adloun

Une table de hachage : une fonction de hachage envoie chaque clé vers une case du tableau.

12.1 Indexer par autre chose qu'un entier

Un tableau associe une valeur à un entier compris entre et , et l'accès est immédiat. Mais on veut souvent associer une valeur à un mot, à un nom, à une paire de coordonnées. C'est le tableau associatif : un ensemble de couples (clé, valeur), où la clé n'est plus un indice.

Trois réalisations ont déjà été rencontrées ou vont l'être, et elles se distinguent par un seul chiffre :

RéalisationRechercheCe qu'elle exige de la cléChapitre
Liste de couplesl'égalitéchap:sequentielles
Arbre de rechercheun ordre totalchap:tas
Table de hachage en moyennel'égalité, et une fonction de hachageici

La table de hachage est la plus rapide et la plus exigeante en garanties : son est en moyenne, jamais dans le pire cas.

12.2 Le principe

Définition 12.1Fonction de hachage, table

Une fonction de hachage envoie une clé sur un entier de , où est la taille du tableau sous-jacent. La valeur associée à la clé est rangée à l'indice .

L'accès devient alors le calcul de , puis un accès direct : , si tout va bien.

ImportantCe que le programme exige, et ce qu'il n'exige pas

La phrase est explicite : « la construction d'une fonction de hachage et les méthodes de gestion des collisions éventuelles ne sont pas des exigibles du programme ».

On doit donc savoir utiliser une table de hachage, connaître son coût et ses limites. On n'a pas à savoir concevoir une bonne fonction de hachage, ni à connaître le détail des stratégies de résolution. Ce chapitre les présente néanmoins brièvement, parce qu'on ne peut pas juger un « en moyenne » sans savoir de quoi il dépend.

12.3 Les collisions

Définition 12.2Collision

Deux clés distinctes telles que sont en collision.

Exercices du chapitre

La suite du cours · Tous les exercices du chapitre