【问题标题】:Unsuccessful binary tree search不成功的二叉树搜索
【发布时间】:2016-05-06 02:00:08
【问题描述】:

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

【问题讨论】:

    标签: binary-tree tree-search


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      想想你实际上必须访问多少个节点才能确定它不在那里。

      例子:

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

      假设你想要 2。从根开始,向左走,扔掉 8 及其子项。小于 3 所以向左扔掉 4。大于 1 所以它不存在。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-30
        • 2023-03-08
        • 1970-01-01
        • 2016-06-05
        • 2019-02-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多