其中有一个不懂的地方是为什么Ctn-1失败情况x对应的查找长度为d,然后Ctn中成功情况x对应的查找长度就为d-2?如果可以的话能结合比较树模型讲解一下过解题程(这里的解题过程不太明白)
1条回答 默认 最新
- devmiao 2018-09-02 03:29关注
看数据结构书的时候碰上的内容,我自己将它化成关于级数的题,然后自己算的过程,基本就是等比级数和等差级数的混合内容。
满二叉树来分析折半查找的平均长度h=层高 n=节点数
[]为计算过程的式先算总查找次数
1*1+2*2+3*4+4*8...(h-1)*2^(h-2)+h*2^(h-1) ………………[1][1]*2:
1*2+2*4+3*8+4*16...(h-1)*2^(h-1)+h*2^h ……………………[2]
[2]-[1]:
[1]*2-[1]=[3]:
[1]=[3]:-1*1-1*2-1*4-1*8-1*16...-2^(h-1)+h*2^h ……………………… [3]
[4]+h*2^h=[3]…………………………………………………………………………[3.1]
-1*1-1*2-1*4-1*8-1*16...-2^(h-1) ……………………………………… [4]
[4]*2-[4]=[5]=[4]
-2^h+1 …………………………………………………………………………………… [5]
因为[5]=[4],所以把[5]代入[3.1]可以得到下面的结果
[3]=[5]+h*2^h = -2^h+1+h*2^h=(h-1)*2^h+1由于 (n+1=2^h),所以有
[3]=(n+1)log(n+1)-(n+1)+1
=(n+1)log(n+1)-n最后,来求查找次数平均数
[3] /n = ((n+1)log(n+1)-n)/n最终,平均查找长度约等于log(n+1)-1
上面的所有对数log的底数皆为2.
解决 无用评论 打赏 举报
悬赏问题
- ¥15 如何在scanpy上做差异基因和通路富集?
- ¥20 关于#硬件工程#的问题,请各位专家解答!
- ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
- ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
- ¥30 截图中的mathematics程序转换成matlab
- ¥15 动力学代码报错,维度不匹配
- ¥15 Power query添加列问题
- ¥50 Kubernetes&Fission&Eleasticsearch
- ¥15 報錯:Person is not mapped,如何解決?
- ¥15 c++头文件不能识别CDialog