二叉搜索树(BST)中的大O复杂度

时间:2014-12-23 17:30:44

标签: data-structures big-o binary-search-tree

我一直在审查我学到的所有东西,并发现这个website,并且它说在二叉树中搜索的最坏情况具有O(n)复杂性。到目前为止,我已经知道,二进制搜索树是一个排序树,我们可以搜索二进制搜索,它可能有O(log n)-log base 2.

有人可以解释一下吗?

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)