不成功的二叉树搜索

时间:2016-05-06 02:00:08

标签: binary-tree tree-search

我知道,对于成功搜索,使用二叉树的所有包含n个密钥的输入的平均搜索时间都在Big O(lg n)中,但是这个结果是否适用于不成功的研究?

2 个答案:

答案 0 :(得分:1)

严格地说,如果您的二叉树不平衡,即使搜索成功,您也可能无法获得O(log n)。

对于平衡的二叉树,很容易看到即使它不成功也会保持结果,因为在任何通用步骤中你都可以排除剩余树的重要部分(大约一半)。

答案 1 :(得分:0)

是的,二叉树结构允许您在每次检查时基本上丢弃一半数据集。

只要考虑一下你实际需要访问多少个节点,以便确定它不在那里。

示例:

     5
     /\
    3  8
   /\  /\
  1 4  6 9

说你想要2.从根开始,向左走,扔掉8和它的孩子。小于3,所以离开扔掉4.大于1,所以它不在那里。

在这种情况下,您只访问了5,3和1.您可以将其视为与插入新节点相同。