la mise en œuvre Dictionnaire (équilibre binaire arbre Recherche vs table de hachage)

voix
1

Dans quelles circonstances serait-il préférable de mettre en œuvre un ADT Dictionnaire en utilisant un arbre binaire équilibré plutôt que d'une table de hachage?

Mon hypothèse est qu'il est toujours préférable d'utiliser un arbre de recherche binaire en raison de son ordre naturel.

Mais il est vrai que le temps de recherche de table de hachage peut être aussi bon que O (1), vs O (log n) pour l'arbre binaire.

donc je ne suis pas sûr de ce que les circumtaces seraient.

Créé 15/04/2011 à 02:13
source utilisateur
Dans d'autres langues...                            


3 réponses

voix
0

Votre question contient déjà la réponse:

Si vous ne nécessitent pas de commande intrinsèque puis utiliser une table de hachage pour une meilleure performance. Si vos besoins exigent une sorte de commande alors envisager d'utiliser un arbre.

Créé 15/04/2011 à 02:16
source utilisateur

voix
1

Les tables de hachage pourraient avoir un problème de performance quand ils se remplissent et la nécessité de réaffecter la mémoire (dans le contexte d'un système en temps réel dur) arbres .binary n'ont pas cette question. Les tables de hachage ont besoin de plus de mémoire que utilisent effectivement, où les arbres binaires utilisent autant de mémoire dont ils ont besoin.

Créé 15/04/2011 à 02:19
source utilisateur

voix
0

La complexité du temps pour le dictionnaire est:

-----------------------------------------
| Operation   |  Dictionary |    BST    | 
-----------------------------------------
| Insert      |  O(1)       | O(log(n)) |
-----------------------------------------
| Delete      |  O(1)       | O(log(n)) |
-----------------------------------------
| Search      |  O(1)       | O(log(n)) |
-----------------------------------------

Où utilisez-vous BST vs Dictionnaire? Voici quelques avantages principaux de BST.

  • Avec BST vous avez toujours l'opération O (log (n)), mais le redimensionnement d'une table de hachage est une opération coûteuse
  • Si vous avez besoin pour obtenir les clés dans un ordre de tri que vous pouvez obtenir les traverser afinde arbre. Le tri est pas naturel à un dictionnaire
  • Faire des statistiques, comme trouver le bas le plus proche et plus élément ou d'une requête de plage.
Créé 29/01/2019 à 21:47
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more