完美的二叉树:DSW和RB平衡树

时间:2013-01-02 13:38:41

标签: algorithm binary-tree time-complexity red-black-tree

我知道我们可以使用DSW算法或红黑平衡树预处理并将任何二叉搜索树转换为完美的二叉树。

这两种方法如何区分时间复杂度?

您是否可以为每个示例/应用程序提供一些示例/应用程序,以显示使用一种方法而不是另一种方法的好处。

2 个答案:

答案 0 :(得分:1)

DSW是静态算法 - 你使用它一次,你希望树永远不会改变。花费O(N)时间使树完全平衡,然后您可以使用它,但预计不会修改它。你仍然可以做到这一点,但完全平衡的属性将会丢失。你执行的修改操作越多,树的执行就越差。

红黑树是一种动态数据结构。它在O(log(N))中执行其基本操作,但当然不会像完美平衡的树那样好。最重要的是可以在飞行中修改红黑树,并且仍然需要O(log(N))来进行操作。

因此这两种方法的用例不同。希望这会有所帮助。

答案 1 :(得分:0)

当您想要创建整个BST(不平衡)然后执行大量查找(在后平衡BST上)时,DSW非常有用。当你有交织的添加/删除/查找时,RB树很有用。

RB树主要是平衡,但DSW是一个完整的二叉树(可能是最后一级)。

两者都提供O(log n),但DSW是可以分摊的一次性操作。