数据结构 – 为什么哈希映射比trie映射更好?

通过trie map我的意思是一个关联数组,其中有效载荷存储在trie而不是哈希表中.

当我使用哈希映射/表时,我使用的键通常是字符串.哈希映射优于某些基于trie的映射有什么优势?我已经读过哈希映射更快 – 但在我看来,一致的哈希函数必须检查(char)数组的每个元素以获得最终的哈希 – 迭代数组一次.在一个特里,你同样必须迭代数组一次.

在我看来,在编码小对象时会使用更多的内存(即使你只允许键中的小写字母字符,每个节点有26个指针,每个键通常有多个节点),但从正面看你永远不必担心调整大小.为什么哈希地图如此常见,但我从未见过特里地图?

最佳答案
哈希映射比trie映射更常见,因为它们更通用:它们可以用于任何可清除的对象,而trie可用于序列.散列表在常见实现中也具有更好的引用局部性,因为它们将元素存储在一起.

(严格地说,每个对象都是一个位序列,但是通用的trie会要求用户在将对象存储到trie之前序列化它们.与定义自定义散列函数相比,这非常不方便.)

转载注明原文:数据结构 – 为什么哈希映射比trie映射更好? - 代码日志