Donc, si je dois choisir entre une table de hachage ou un arbre de préfixes, quels sont les facteurs de discrimination qui me conduiraient à choisir l'un par rapport à l'autre. De mon point de vue naïf, il semble que l'utilisation d'un trie ait un surcoût supplémentaire car il n'est pas stocké en tant que tableau mais en termes de temps d'exécution (en supposant que la plus longue clé est le plus long mot anglais). (1) (par rapport à la limite supérieure). Peut-être que le plus long mot anglais est 50 caractères?Comment choisir entre une table de hachage et un trie (arborescence de préfixes)?
Les tables de hachage sont recherchées instantanément une fois que vous obtenez l'index. Hashing la clé pour obtenir l'indice semble cependant qu'il pourrait facilement prendre près de 50 étapes. Est-ce que quelqu'un peut me fournir un point de vue plus expérimenté à ce sujet? Merci!
ne peut pas être tout à fait d'accord avec "Plus d'espace que la structure trie liée évidente" - dans une implémentation générale de table de hachage, il occupe un espace beaucoup plus grand pour contenir des clés, tandis que dans les essais, chaque nœud représente un mot. En ce sens, les essais sont plus efficaces dans l'espace. – galactica
qu'en est-il de l'accès aux données d'une structure par rapport à l'autre? Je pense cache et l'emplacement –
@galactica, qui est en conflit avec mon expérience: par exemple, dans [cette réponse] (http://stackoverflow.com/questions/327223/memory-efficient-alternatives-to-python-dictionaries/ 327295 # 327295) de toutes les structures que j'ai mesurées pour l'espace, un trie s'est avéré le pire. Cela a du sens, car un pointeur est beaucoup plus grand qu'un octet. Oui, le partage des préfixes aide, mais il doit surmonter beaucoup de frais généraux pour atteindre la parité. Une représentation plus efficace sur le plan spatial peut aider beaucoup, mais nous ne parlons plus de la structure liée évidente. –