avl (19)


algorithm - 平衡二叉树(AVL)

algorithm - 平衡二叉树(AVL)

好的,这是CS家伙们理论界的另一个话题。 在90年代,我在执行BST方面做得相当不错。 我永远无法得到我的头脑唯一的事情是算法的复杂性来平衡二叉树(AVL)。 你们能帮我吗?…


data structures - 维基百科的一个不平衡的AVL树的例子是如何不平衡的?

上面的图片来自维基百科指出的“维基百科在AVL树上的条目”不平衡。 这棵树如何不平衡已经? 这里有一篇文章的引用: 节点的平衡因子是右子树的高度减去其左子树的高度,平衡因子为1,0或-1的节点被认为是平衡的。 具有任何其他平衡因子的节点被认为是不平衡的,并且需要重新平衡树。 平衡因子可以直接存储在每个节点上,也可以从子树的高度来计算。 左边和右边的子树都有4的高度。左边的树的右边的子树的高度…


data structures - 在红黑树中自顶向下删除的速度比自下而上删除更快,空间效率更高?

按照此页面http://www.eternallyconfuzzled.com/tuts/datastructures/jsw_tut_rbtree.aspx “自上而下删除”是红黑树节点删除的实现,通过向下推红节点主动平衡树通过树,使得被移除的叶子节点保证是红色的。 由于叶子节点保证为红色,因此不必担心重新平衡树,因为删除红色叶节点不会违反任何规则,也不必执行任何其他操作来重新平衡树。平衡和恢…


runtime - 搜索二进制搜索树的时间

有谁知道如何计算二叉搜索树的搜索时间(即最差情况,最佳情况和平均情况)?…


algorithm - B树比AVL或RedBlack-Tree更快?

我知道性能永远不会是黑白的,通常一种实现在X情况下更快,在Y情况下更慢,等等。但一般来说-B树比AVL或RedBlack-Trees快吗? 它们比AVL树(甚至可能是RedBlack-trees?)要复杂得多,但它们更快(它们的复杂性是否得到回报)? 编辑:我还想补充一点,如果它们比等效的AVL/RedBlack树更快(就节点/内容而言)-为什么它们更快?…


math - 可以使用N个密钥创建的二叉搜索树的可能数量由第N个加泰罗尼亚数给出。 为什么?

这困扰了我一段时间。 我知道,如果N键以二叉搜索树的形式排列,可以创建的树的可能数量对应于加泰罗尼亚序列中的第N个数字。 我一直试图确定这是为什么; 无法找到任何甚至可能试图直观地解释它的东西我诉诸于SO的集体知识。 我找到了计算可能树木数量的其他方法,但它们似乎不太直观,除了如何使用它之外没有提供任何解释。 另外,维基页面(上面的链接)甚至可以显示带有3个键的可能树形图的图像,这将使我认为有…


c++ - 连接/合并/连接两个AVL树

假设我有两个AVL树,并且第一个树中的每个元素都小于第二个树中的任何元素。 将它们连接成一个单独的AVL树的最有效方法是什么? 我到处搜索,但没有找到任何有用的东西。…



arrays - 二分搜索与二叉搜索树

二进制搜索树对带有二分搜索的排序数组有什么好处? 只是通过数学分析我没有看到差异,所以我假设低级实现开销必须存在差异。 平均病例运行时间的分析如下所示。 使用二进制搜索排序的数组 搜索:O(log(n)) 插入:O(log(n))(我们运行二进制搜索以找到插入元素的位置) 删除:O(log(n))(我们运行二进制搜索来查找要删除的元素) 二进制搜索树 搜索:O(log(n)) 插入…


c++ - 为什么搜索树要比红黑树快?

我已经在几个地方阅读了这个树,搜索速度更快,但不能理解。 据我所知,红黑树的最大高度= 2*log(N+1)AVL树的高度= 1.44*标志(N+1) 是因为AVL较短吗?…


data structures - 红黑树与B树

我有一个项目,我必须在从兆字节到太字节的数据上实现快速搜索,插入和删除操作。 我最近一直在研究数据结构并对其进行分析。 具体而言,我想介绍3个案例并就此提出问题: 这些数据远远超过了内存可以处理的内容(样本范围为10-15太字节)。 在这种情况下,我会将数据结构存储在磁盘上。 与系统的存储器相比,数据相对较少,因此可以在存储器本身中存储和操作以提高速度。 数据不仅仅是空闲内存,并且假设它小…




tree java red black leetcode binary search python bst visualization