我正在考虑尝试使用树结构进行索引,因为我想测试它是否比我当前的索引实现更快,这实际上是基于散列的查找。
我已经阅读了关于B树,AVL树和红黑树表现的各种问题和文章,并且在性能方面看不出真正的差异。
人们会推荐什么样的树结构?为什么?理想情况下,它应该有一个现有的.Net实现,虽然我不反对在必要时实现我自己的
答案 0 :(得分:5)
好的哈希表几乎总是比树快。树的巨大优势在于您可以使用它来查询范围和排序。因此,如果您不需要这些功能,我宁愿考虑优化基于哈希的解决方案。
AFAIK SortedDictionary<K,V>
是基于树的。
答案 1 :(得分:1)
二叉树不平衡。不要使用它。
AVL树比红黑树更平衡;它的查找速度更快。
更重要的是,AVL算法简单明了,易于理解。这是IME,而不是红黑算法的情况。你不能实现你不理解的算法,或者更确切地说,你可以盲目地实现它们,这在我看来是正确的 - 无法实现它们。