我一直在审查我学到的所有东西,并发现这个website,并且它说在二叉树中搜索的最坏情况具有O(n)复杂性。到目前为止,我已经知道,二进制搜索树是一个排序树,我们可以搜索二进制搜索,它可能有O(log n)-log base 2.
有人可以解释一下吗?
答案 0 :(得分:3)
在绝对最坏的情况下,带有N
元素的二叉树就像一个链表
因此,会有N
个级别,搜索会进行N
个遍历。
~ Root ~
____
| 42 |
|____|
/ \
____/ \
| 13 | X
|____|
/ \
____/ \
| 11 | X
|____|
/ \
/ \
... X
这就是为什么在最坏的情况下它是O(N)
这就是我们需要平衡树木以实现O(log N)
搜索的原因。
答案 1 :(得分:0)
O(log n)仅在btree平衡时有效。 如果你的插入都在树的同一侧,找到你必须遍历所有项目的东西,那么O(n)