Files
912-notes/thu_dsa/chp2/bin_fib_search_len.md
2019-12-07 21:29:32 +08:00

1.0 KiB
Raw Blame History

关于二分查找和斐波拉契查找的查找长度问题

  • 对于三个版本的二分查找,以及斐波拉契查找,设向量的规模为n,成功查找的总查找长度为S,失败查找的总查找长度为F,则总是有
S + n = F

该结论可以对n进行归纳证明,具体可见习题集[2-18]。

  • 对于斐波拉契查找,设向量规模n = fib(k) - 1,则一次查找的最多比较次数(即查找长度)为k - 1,且出现在不断向左侧移动的情况中。这是因为向量的规模至多只能减小至fib(3) - 1 = 1,再往下就结束查找了。

  • 对于二分查找的版本1不平衡版本以及斐波拉契查找总之就是三分支结构的查找都有最坏情况下成功查找的比较次数等于失败查找的比较次数,这是因为若成功查找的叶节点的比较次数为d,则该叶节点的两个外部节点分别对应了两次失败查找,它们的比较次数分别为d - 1d