【发布时间】:2016-12-06 23:38:57
【问题描述】:
将节点插入二叉搜索树的最坏情况时间复杂度是多少?
【问题讨论】:
-
你怎么看? O(n) 如果你必须遍历整棵树。
标签: data-structures time-complexity binary-tree
将节点插入二叉搜索树的最坏情况时间复杂度是多少?
【问题讨论】:
标签: data-structures time-complexity binary-tree
O(n) 其中n 是节点数。例如,如果您以有序的方式插入所有键,就会发生这种情况
【讨论】:
如果你有一个不做任何平衡的“纯”二叉搜索树,那么插入元素的最坏情况运行时间是 Θ(n)。如果您有一个退化的二叉搜索树(每个节点只有一个子节点)并且您最终插入的元素最终成为最深节点的子节点,则会发生这种情况。例如,如果您尝试通过插入数字 1、2、3、...、n 来构建 BST,并且在每个步骤中插入剩余数字中的最小或最大,您将触发这种情况.
如果您使用自平衡二叉搜索树,例如 AVL 树或红/黑树,最坏情况的运行时间是 Θ(log n),因为这些树保证树的高度永远不会超过Θ(log n) 并且插入的运行时间在最坏的情况下与树的高度成正比。
【讨论】: