我正在考虑尝试使用树结构进行索引,因为我想测试它是否比我当前的索引实现更快,这本质上是基于哈希的查找。
我已经阅读了有关 B-Trees、AVL-Trees 和 Red-Black Trees 性能的各种问题和文章,并且在性能方面看不出它们之间有多大区别。
人们会推荐什么树结构,为什么?理想情况下,它应该有一个现有的 .Net 实现可用,但我不反对在必要时实现我自己的
我正在考虑尝试使用树结构进行索引,因为我想测试它是否比我当前的索引实现更快,这本质上是基于哈希的查找。
我已经阅读了有关 B-Trees、AVL-Trees 和 Red-Black Trees 性能的各种问题和文章,并且在性能方面看不出它们之间有多大区别。
人们会推荐什么树结构,为什么?理想情况下,它应该有一个现有的 .Net 实现可用,但我不反对在必要时实现我自己的
一个好的哈希表几乎总是比树快。树的最大优点是您可以使用它来查询范围和排序。因此,如果您不需要这些功能,我宁愿考虑优化您的基于哈希的解决方案。
AFAIKSortedDictionary<K,V>
是基于树的。
二叉树是不平衡的。不要使用它。
AVL 树比红黑树更平衡;它具有更快的查找速度。
更重要的是,AVL 算法简单易懂。这是 IME,而不是红黑算法的情况。你不能实现你不理解的算法,或者更确切地说,你可以盲目地实现它们,在我看来,这完全等同于 - 不能 - 能够实现它们。