算法导论第十二章思考题参考答案(23)

 Ploblem 12-1

a.每次插入都会将元素添加到最右边叶子的右边,因为第11行中的不等式总是求值为false。这将导致运行时为z
b.这种策略将导致两个子树中的每一个子树的大小相差最多为1。这意味着高度为Θ(lg(n))。所以总运行时间是
c.这将只需要线性时间,因为树本身的高度为0,并且单个插入到列表中可以在常数时间内完成。
d.最坏情况下的性能是每个随机选择都在右边(或全部在左边),这将导致与问题的第一部分相同的行为,Θ(n^2)。
为了非正式地计算期望的运行时间,只需注意在随机选择时,我们将大约有一半的时间选择左边,所以,树将大致平衡,所以,我们有深度大约是 lg(n),所以期望的运行时间将是nlg(n)。

  Ploblem 12-2

树的根的单词必然在它的左子树或右子树的任何单词之前,因为它既短,又是这些树中每个单词的前缀。此外,左子树中的每个词都在右子树中的每个词之前,所以我们只需要执行一个预序遍历。这可以递归地完成,如练习12.1-4所示。

  Ploblem 12-3

a.由于我们对所有节点x取d(x, T)值的平均值,所以它是,但根据定义,这是

b.每个非根节点在到达该节点的路上都有一个来自根的第一条边的贡献,这条路径上的所有其他边都是通过查看以原始根的子树为根的两个子树中的边来计数的。因为有 n1 个非根节点,我们有

c. 当我们在 n 个键上随机构建树时,我们有 n 种可能性来选择我们添加到树中的第一个元素,这个键将属于最终的根。假设在{0 ,…中的某个 i i + 1 的阶统计量。 N 1} 。然后,我们知道所有较小的元素都在左边而所有较大的元素都在子元素的右边。然而,它们彼此之间的顺序都是随机的,所以,我们有 P(i) = E[P(T L )] P(n i 1)= E[P(T R )] 。因此,我们通过对放入 BST 的第一项的序统计量进行平均,得到了期望的不等式。
d.

然后,我们做替换 j = ni1,然后做一个简单的事情,对第三个和求和得

到一个常数

e. 上一部分的递归式与问题 7-3 中展示的式 (7.6) 完全相同。 E 有解 Θ( n lg(n))
f. 设选择的第一个枢轴是添加到二叉树中的第一个元素。因为每个元素都与根比较,每个元素都与第一个枢轴比较,我们就得到了我们想要的。然后,让下一个枢轴为左(resp 。右 ) 子数组是小于 (resp) 的第一个元素。大于根元素。然后,我们得到两个子树形成的剩余元素的分区与两个子数组左边形成的相同。这样我们就可以继续递归了。因为 if 在第一个元素成立,并且问题具有相同的递归结构,我们知道它在每个元素都成立。

  Ploblem 12-4

a. 在一个顶点上有一个二叉树,只有一个根,所以 b 0 = 1 。为了计算有 n 个节
点的二叉树的个数,我们首先从 n 个顶点中选择一个根。如果我们选择的根
节点是 th 最小的元素,那么左子树将有 i - 1 个顶点,右子树将有 n - i 个顶点。
这样的左子树和右子树的数量分别按频 i 1 n i 计数。对所有可能的根顶点
的选择求和得到 :

 

b.

 应用二次公式,注意取减号使 B(0) = 0 证明结果。

c. 用泰勒展开 √ 1− 4x 我们有:
x^ n 化简中提取系数得到结果

d.Sirling 公式应用于b_{n},得到渐近解 。

  • 14
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值