斐波拉契数列二分查找再回顾

 

在斐波拉契数列二分查找的分析中

https://blog.****.net/aaajj/article/details/44182737

 

比如ABCDE 5个节点,通过以下斐波拉契数列二分方式组织起来,

斐波拉契数列二分查找再回顾

A需要3次,即从5开始到A的路径

B需要3

C需要2

D需要2

E需要2

 

平均期望次数E=总次数 / 节点数 = (3+3+2+2+2) / 5 = 2.4

看到一篇期望分析

https://www.cnblogs.com/ranjiewen/p/6597692.html

似乎还不是很清楚

 

这里,设斐波拉契数列Tn 1 1 2 3 5 8 13 21 ……

设总次数为F

 

可以发现,随着层次的增加,存在着递推关系

F0 = 0

F1 = 0

F2 = F1 + t(2) + F0 + t(1)

 

Fn = Fn-1 + t(n) + Fn-2 + t(n-1)

 

F其实是所有子节点的深度和。

 

Fn = Fn-1 + Fn-2 + t(n+1)

 

F3 = F2 + t(4)

F4 = 2F2 + t(4) + t(5)

F5 = 3F2 + 2(t4) + t(5) + t(6)

F6 = 5F2 + 3t(4) + 2t(5) + t6 + t7

 

其中F2 = t(3)

所以

F5 = 3t3 + 2(t4) + t(5) + t(6)

F6 = 5t3 + 3t(4) + 2t(5) + t6 + t7

F7 = 8t3 + 5t(4) + 3t(5) + 2t(6) + t7 + t8

 

可以看到,系数 8 5 3 2 1 1 也是斐波拉契数列

越来越奇妙,是否可以求出通项公式呢?