我知道,对于成功搜索,使用二叉树的所有包含n个密钥的输入的平均搜索时间都在Big O(lg n)中,但是这个结果是否适用于不成功的研究?
答案 0 :(得分:1)
严格地说,如果您的二叉树不平衡,即使搜索成功,您也可能无法获得O(log n)。
对于平衡的二叉树,很容易看到即使它不成功也会保持结果,因为在任何通用步骤中你都可以排除剩余树的重要部分(大约一半)。
答案 1 :(得分:0)
是的,二叉树结构允许您在每次检查时基本上丢弃一半数据集。
只要考虑一下你实际需要访问多少个节点,以便确定它不在那里。
示例:
5
/\
3 8
/\ /\
1 4 6 9
说你想要2.从根开始,向左走,扔掉8和它的孩子。小于3,所以离开扔掉4.大于1,所以它不在那里。
在这种情况下,您只访问了5,3和1.您可以将其视为与插入新节点相同。