【问题标题】:Probability and Asymptotics概率和渐近
【发布时间】:2017-03-06 23:00:58
【问题描述】:

考虑当我们有 n 个相同输入的情况,对于二叉搜索树。我们从 x.leftx.right 中随机选择,同时插入节点。

clrs (12-1-(d)) 中有一个问题,要求我们推导出此设置的预期运行时间。直观地说,答案就是 O(n lg n)。但是我怎么证明呢?

任何建议都表示赞赏。

月亮。

【问题讨论】:

    标签: tree probability asymptotic-complexity insertion clrs


    【解决方案1】:

    想象一下,在这个过程完成后,您拥有了最终的树。使用数字 1、2、3、...、n 标记树中的每个节点,以便生成的树是二叉搜索树。现在,想象一下重播构建树的过程,知道每个元素在哪里结束。您最终要追踪的过程最终等同于根据每个元素的数值对其进行常规 BST 插入。所以这个问题最终等同于以下问题:如果你将元素 1、2、3、...、n 的随机排列插入到二叉搜索树中,你将花费的预期时间是多少所以呢?

    如果您已经知道这个问题的答案,那么您就完成了。如果不是,一个可爱的技巧是意识到这个过程最终等同于对元素 1、2、3、...、n 的数组运行随机快速排序。这是看待这一点的一种方式。树中的根元素对应于选择的第一个枢轴元素 - 每个插入的元素都与它进行比较并放入左子树或右子树。根的左子节点对应于在小于初始轴的元素的递归调用中选择的轴 - 每个小于初始轴的元素都与左侧的轴进行比较。您可以使用归纳法形式化此论点:通过归纳法证明,对于任何长度为 n 的数组,将元素 1、2、3、...、n 的随机排列插入二叉搜索树时进行的比较次数对应于使用结构遵循树中给定模式的枢轴对该数组执行快速排序。

    一旦你有了这个连接,你就完成了,因为随机快速排序的预期成本是 Θ(n log n)。

    【讨论】:

    • 因此,简单地说,我们将构建的树视为元素 {1,2,3,...,n} 的可能树之一。因为,我们的树可以是任何一种可能的树,因此这个问题就等同于寻找随机构建的二叉搜索树的运行时间。哪个是 O(n lg n)。不是吗?
    • @user5345646 是的!
    猜你喜欢
    • 2013-12-03
    • 2011-06-23
    • 1970-01-01
    • 1970-01-01
    • 2018-10-27
    • 2015-05-25
    • 2014-10-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多