我应该使用什么树结构进行索引?

时间:2010-10-14 10:59:15

标签: .net tree b-tree avl-tree red-black-tree

我正在考虑尝试使用树结构进行索引,因为我想测试它是否比我当前的索引实现更快,这实际上是基于散列的查找。

我已经阅读了关于B树,AVL树和红黑树表现的各种问题和文章,并且在性能方面看不出真正的差异。

人们会推荐什么样的树结构?为什么?理想情况下,它应该有一个现有的.Net实现,虽然我不反对在必要时实现我自己的

2 个答案:

答案 0 :(得分:5)

好的哈希表几乎总是比树快。树的巨大优势在于您可以使用它来查询范围和排序。因此,如果您不需要这些功能,我宁愿考虑优化基于哈希的解决方案。

AFAIK SortedDictionary<K,V>是基于树的。

答案 1 :(得分:1)

二叉树不平衡。不要使用它。

AVL树比红黑树更平衡;它的查找速度更快。

更重要的是,AVL算法简单明了,易于理解。这是IME,而不是红黑算法的情况。你不能实现你不理解的算法,或者更确切地说,你可以盲目地实现它们,这在我看来是正确的 - 无法实现它们。