📜  数据结构|二叉树|问题9

📅  最后修改于: 2021-07-02 16:05:54             🧑  作者: Mango

权重平衡树是二叉树,其中每个节点都是二叉树。左子树中的节点数至少为右子树中节点数的一半,最多为两倍。这样的树在n个节点上的最大可能高度(从根到最远的叶子的路径上的节点数)最好用以下哪个描述?
一种) \log_2 n
b) \log_{4/3} n
C) \log_3 n
d) \log_{3/2} n
(A) A
(B) B
(C) C
(D) D答案: (D)
说明:令具有n个节点的树的最大可能高度由H(n)表示。

H(n)的最大可能值可以使用以下递归近似写出

H(n) = H(2n/3) + 1     

上述复发的解决方案是\log_{3/2} n 。我们可以简单地通过绘制一个递归树来获得它。


4.考虑以下算法,以在具有n个不同值的未排序数组A [1..n]中搜索给定数x:

1)    Choose an i uniformly at random from 1..n; 
2)    If A[i] = x then Stop else Goto 1; 

假设x存在于A中,则算法终止之前预期进行的比较次数是多少?

一个
b)nl
c)2n
d)n / 2

答案(a)

如果您还记得硬币和骰子的问题,就可以猜出上述答案。

以下是答案的证明。

令期望的比较数为E。对于所有可能的情况,E的值是以下表达式的总和。

number_of_comparisons_for_a_case * probability_for_the_case 

情况1

If A[i] is found in the first attempt 
  number of comparisons = 1
  probability of the case  = 1/n

情况二

If A[i] is found in the second attempt 
  number of comparisons = 2
  probability of the case  = (n-1)/n*1/n

情况3

If A[i] is found in the third attempt 
  number of comparisons = 2
  probability of the case  = (n-1)/n*(n-1)/n*1/n

实际上有无数这样的情况。因此,我们有E的无限级数。

E  = 1/n + [(n-1)/n]*[1/n]*2 + [(n-1)/n]*[(n-1)/n]*[1/n]*3 + ….  (1)

将方程式(1)乘以(n-1)/ n后,我们得到

E (n-1)/n = [(n-1)/n]*[1/n] + [(n-1)/n]*[(n-1)/n]*[1/n]*2 + 
                                 [(n-1)/n]*[(n-1)/n]*[(n-1)/n]*[1/n]*3 ……….(2)

从(1)减去(2),我们得到

E/n = 1/n + (n-1)/n*1/n + (n-1)/n*(n-1)/n*1/n + …………

右侧的表达式是具有无限元素的GP。让我们应用总和公式(a /(1-r))

E/n = [1/n]/[1-(n-1)/n]  = 1
  E = n

这个问题的测验