Différence entre BST, Hashage, Tries et carte

voix
4

J'ai lu blog et tutoriel sur Tries, hachant, Carte (stl) et BST. Je suis très confus dans lequel on est préférable d'utiliser et où. Je sais que, pour faire une telle différence entre les deux sont un non-sens, car ils sont tous dépendants de la mise en œuvre. Pourriez-vous s'il vous plaît me dire plus précis et s'il vous plaît ne pas oublié de mentionner la complexité (pire, moyenne, et le meilleur des cas).

Merci d'avance...

Créé 16/08/2011 à 10:07
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
6

BST est binaire Rechercher Arbre. Il est utilisé pour un dictionnaire. BST n'a pas de limites sur la structure, et donc une recherche / insertion / suppression est O (n) pire des cas.

Carte [sur stl] est aussi un dictionnaire, et est en fait un arbre rouge-noir [sur stl]. il est un type particulier de BST, qui a des limites sur les structures, à cause de cela, la recherche pire cas / insertion / suppression est O (logn).

hachage table de hachage est un autre type de dictionnaire, l'avantage d'une table de hachage [avec de bonnes fonctions de hachage] est O (1) temps moyen de recherche / supprimer / insérer. Cependant, le pire des cas est O (n), ce qui arrive si les éléments trop entrent en collision et / ou quand une nouvelle mouture est nécessaire [lorsque l' équilibrage de charge est trop élevée, on attribue un plus grand tableau, et ressasser tous les éléments est].

Essais sont spéciaux pour les chaînes. tous les ops sont O (S) où S est la longueur de la chaîne. c'est un avantage sur les autres [lorsqu'ils traitent avec des chaînes] est que vous devez lire la chaîne de toute façon, la complexité si , Mappar exemple, lorsqu'ils traitent avec des chaînes, est en fait O (S * n * logn).

quand utiliser?
un Map[ou tout autre arbre équilibré] devrait presque toujours être un meilleur choix alors régulièrement BST.
hash tableest un bon choix quand vous voulez peu de temps moyen, mais ne se soucient pas que certains temps , vous aurez la perte de performance due à ressasser, et les collisions peuvent se produire dans certains cas.
Trieest généralement un bon dictionnaire pour les chaînes.

Créé 17/08/2011 à 08:54
source utilisateur

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