Skip to main content

Qu'est-ce qu'un hachage?

Dans l'informatique, un hachage est une structure de données pour stocker des données qui se compose d'une liste de valeurs, appelées clés, qui sont associées à une liste de valeurs correspondante, appelée tableau.Par exemple, un nom d'entreprise peut être associé à son adresse.En règle générale, chaque valeur du tableau a un numéro de position appelé hachage.La fonction de hachage est généralement un ensemble d'instructions ou un algorithme qui mappe chaque valeur clé à un hachage et mdash;Connexion du nom de l'entreprise à son adresse, à son numéro de téléphone et à sa catégorie d'entreprise, par exemple.Le but de la fonction de hachage est d'attribuer chaque clé à une valeur correspondante unique dans le tableau;Ceci est communément appelé hachage.Les fonctions de hachage doivent être correctement formatées pour un hachage pour fonctionner correctement.

Les performances d'un hachage sur un ensemble de données dépendent de l'efficacité de sa fonction de hachage.Une bonne fonction de hachage fournit généralement une recherche uniforme des clés et une distribution uniforme des mappages dans le tableau correspondant.Une collision de hachage se produit lorsque deux clés sont affectées à la même valeur correspondante.Lorsqu'une collision de hachage se produit, la fonction de hachage est généralement exécutée à nouveau jusqu'à ce qu'une valeur correspondante unique soit trouvée;Cela se traduit généralement par des temps de hachage plus longs.Bien que le nombre de clés dans un hachage soit généralement fixe, il peut parfois y avoir des clés en double.Même ainsi, un hashtable bien conçu a des fonctions de hachage efficaces qui mappent chaque clé d'une valeur correspondante unique dans le tableau.

Parfois, les fonctions de hachage inefficaces dans un hachage peuvent également produire un groupe de mappages.Si une fonction de hachage crée un groupe de mappages pour les clés existantes, cela peut augmenter le temps nécessaire pour rechercher les valeurs correspondantes.Cela peut ralentir le hachage des clés futures, car la plupart des fonctions de hachage recherchent généralement la prochaine position disponible dans le tableau.Si un grand groupe de valeurs avait déjà été attribué, il faudrait généralement beaucoup plus de temps pour rechercher une valeur non attribuée pour une nouvelle clé.

Le facteur de charge est un autre concept lié à l'efficacité d'une fonction de hachage;Le facteur de charge est la quantité de hachages déjà existants par rapport à la taille globale du réseau correspondant dans un hashtable.Il est généralement défini en divisant le nombre de clés déjà attribuées par la taille du tableau correspondant.À mesure que le facteur de charge augmente, une bonne fonction de hachage maintiendra normalement un nombre constant de collisions et de grappes jusqu'à un certain point.Souvent, ce seuil peut être utilisé pour déterminer l'efficacité d'une fonction de hachage avec un nombre donné de clés et lorsqu'une nouvelle fonction de hachage peut être nécessaire.

De nombreux chercheurs en informatique se sont efforcés de produire la fonction de hachage parfaite et Mdash;Celui qui ne produit aucune collision ni grappes avec un facteur de charge croissant.En théorie, la clé de la production d'un hachage parfait est de produire une fonction de hachage parfaite.En général, les chercheurs pensent qu'une fonction de hachage parfaite devrait avoir des performances constantes et mdash;le nombre de collisions et de grappes mdash;avec un facteur de charge croissant.Dans le pire des cas, une fonction de hachage parfaite permettrait toujours un hachage constant sans atteindre un seuil.