哪个更快:“基数树”或“b树”

时间:2010-08-21 09:00:12

标签: dictionary hash binary-tree radix-sort

对于处理语言,如在常规字典单词中,读取,基数树或常规b树更快?是否有更快的方法,例如带有桶和字典的字典。散列?

1 个答案:

答案 0 :(得分:2)

与往常一样,您需要在应用程序上下文中进行基准测试才能确定。

但是,我希望在这种情况下,一个良好实现的哈希表可能会被证明是最快的。这基本上要求:

  • 通过字符串扫描一次以计算哈希值,通常使用非常快速的操作,例如位移/ XOR
  • 基于哈希值的一个哈希表查找
  • 一个字符串比较,以确认您有正确的单词
  • 在存在哈希冲突的情况下进行一些额外处理 - 但是您可以调整哈希表大小以最小化此

基数树也将非常快,由于需要遍历多个级别的树节点,因此只需要一点额外的开销。如果您的树相对稀疏,那么查找可能只需要在少量级别下查找唯一答案。基数树的一个优点是,如果你没有可能的匹配,它会很早告诉你(例如,以“qq”开头的树的空分支)

二叉树可能是最慢的,因为它平均必须搜索相当多级别的树节点。但是对于大多数用途来说它仍然足够快。