Fan*_*c23 3 algorithm data-structures
TRIE是最值得推荐的数据结构,同时设计类似于存储单词的字典吗?是否有其他改善时间或内存性能的替代方案?
我相信如果没有碰撞,哈希可能会很好但是内存需求开始变得不好重叠的单词:重叠,重叠,重叠,重叠,重叠都会占用独占存储,而我们可以在trie中共享空间.
编辑:感谢@Moron和大家提供的非常有用的答案.我同意 - 生成散列键是O(n),因此是TRIE搜索.然而,对于哈希事物可能会更糟糕,链接增加时间,而对于TRIE,这不会发生.我担心的是,对于TRIE中的每个节点,我需要保留一个指针,如果字典大小很小,它可能正在吹东西.
与Hash表相比,trie具有以下优点:
O(m)与不完美的哈希表相比,查找特里结构中的数据在最坏的情况下,时间更快.不完美的哈希表可能存在关键冲突.密钥冲突是将不同密钥的哈希函数映射到哈希表中的相同位置.不完美的哈希表中的最坏情况查找速度是O(N)时间,但更典型的是O(1),O(m)花费时间来评估哈希.尝试有以下缺点:
如果缺点是你可以忍受的东西,我建议你去看看.