Quelle est la vraie différence entre un dictionnaire et d'une table de hachage?
J'ai toujours utilisé des dictionnaires. J'écris en Python.
Vous devez vous connecter pour publier un commentaire.
J'ai toujours utilisé des dictionnaires. J'écris en Python.
Vous devez vous connecter pour publier un commentaire.
Un dictionnaire est un concept général que les cartes des clés à des valeurs. Il existe de nombreuses façons de mettre en œuvre une telle cartographie.
Une table de hachage est une manière concrète de mettre en œuvre un dictionnaire.
En plus de tables de hachage, une autre façon de mettre en œuvre des dictionnaires est arbres rouge-noir.
Chaque méthode a ses propres avantages et inconvénients. Un rouge-noir arbre peut toujours effectuer une recherche en O(log N). Une table de hachage pouvez effectuer une recherche en O(1) temps même si cela peut se décomposer en O(N) en fonction de l'entrée.
Un dictionnaire est une structure de données des cartes clés à des valeurs.
Une table de hachage est une structure de données des cartes clés à des valeurs en prenant la valeur de hachage de la clé (par l'application de certaines fonction de hachage) et de la cartographie que d'un seau où une ou plusieurs valeurs sont stockées.
OMI ceci est analogue à demander la différence entre une liste et une liste liée.
Pour plus de clarté, il peut être important de noter qu'il PEUT être le cas que Python implémente actuellement leurs dictionnaires en utilisant des tables de hachage, et il PEUT être le cas dans l'avenir que Python modifications qui fait sans causer de leurs dictionnaires de cesser d'être des dictionnaires.
Hashtable
stocke les clés - n'est-il pas une table de hachage, alors?"Un dictionnaire" a différentes significations dans la programmation, wikipédia vais vous dire -- "tableau associatif", le sens dans lequel Python utilise le terme (aussi connu comme un "mapping"), est l'un de ces sens (mais "dictionnaire de données", et "les attaques par dictionnaire" dans le mot de passe deviner tentatives, sont également importants).
Les tables de hachage sont des structures de données importantes; Python utilise pour mettre en œuvre deux types de données intégrés,
dict
etset
.Donc, même en Python, vous ne pouvez pas envisager de "table de hachage" pour être un synonyme de "dictionnaire"... depuis une structure de données similaires est également utilisé pour mettre en œuvre les "jeux"!-)
Un dictionnaire Python est en interne mis en œuvre avec une table de hachage.
Une table de hachage utilise toujours la fonction d'exploitation sur une valeur pour déterminer si une valeur doit être stockée. Un Dictionnaire (comme je crois vous l'intention) est un terme plus général, et indique simplement un mécanisme de recherche, qui pourrait être une table de hachage ou pourraient être mis en œuvre par une structure plus simple qui ne prend pas en compte la valeur elle-même dans la détermination de son emplacement de stockage.
Dictionnaire est mis en œuvre en utilisant des tables de hachage. À mon avis, la différence entre les 2 peut être considéré comme la différence entre les Piles et les Tableaux où nous serions à l'aide de tableaux pour mettre en œuvre les Piles.