【发布时间】:2010-09-19 17:46:26
【问题描述】:
因此,如果我必须在哈希表或前缀树之间进行选择,那么导致我选择其中一个的区别因素是什么。从我自己幼稚的角度来看,似乎使用 trie 有一些额外的开销,因为它没有存储为数组,但就运行时间而言(假设最长的键是最长的英文单词)它本质上可以是 O (1) (关于上限)。也许最长的英文单词是50个字符?
哈希表是即时查找一旦你得到索引。然而,散列密钥以获取索引似乎很容易花费近 50 步。
有人可以为我提供一个更有经验的观点吗?谢谢!
【问题讨论】:
-
值得注意的是,redix 树比普通 trie 更有效,因为您不需要为每个字符串字节创建一个新分支。此外,redix 树比哈希表更好地支持“模糊”搜索,因为您在沿着路径工作时正在查看各个位。例如,
00110010可能是输入字节,但您希望包含匹配的00111010,它只删除了一位。
标签: algorithm data-structures hashtable trie