将节点插入二叉搜索树的最坏情况时间复杂度是多少?

时间:2016-08-01 19:17:48

标签: data-structures time-complexity binary-tree

将节点插入二叉搜索树的最坏时间复杂度是多少?

2 个答案:

答案 0 :(得分:4)

如果你有一个不做任何平衡的“纯”二叉搜索树,那么插入元素的最坏情况运行时是Θ(n)。如果您有一个简并二进制搜索树(每个节点只有一个子节点),并且您最终插入的元素最终成为最深节点的子节点,则会发生这种情况。例如,如果您尝试通过插入数字1,2,3,...,n来构建BST,在每个步骤中插入剩余数字中最小或最大的数字,您将触发此情况

如果您使用的是自平衡二叉搜索树,例如AVL树或红/黑树,则最坏情况的运行时为Θ(log n),因为这些树保证树的高度不会超过Θ(log n)和插入的运行时间在最坏的情况下与树的高度成比例。

答案 1 :(得分:2)

O(n)其中n是节点数。例如,如果您以有序的方式插入所有键

,就会发生这种情况