求解二分查找的最好、最坏、平均时间复杂度

crucifer10 2014-09-13 03:22:50
设排好序的数组长度n,计算二分法查找的最好时间复杂度,最坏时间复杂度以及平均时间复杂度。
...全文
24433 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
m0_37604355 2017-03-03
  • 打赏
  • 举报
回复
你这个第二次概率是2/n就不对,第二次概率是((n-1)/n)*(2/n)虽然前面约为1,但后面会越乘越多,最后达到m次的概率会为0.00几吧。但你这样算最后第m次的值却是一个很大的值,这样算出来的平局需要的次数会比真实值大,你后面怎么计算的就没看了,没咋动,前面那个累加那里就直接用计算机编程把真实值算出来,就不简化,计算出来值确实是偏大的。
crucifer10 2014-09-14
  • 打赏
  • 举报
回复 4
引用 7 楼 jwj070524 的回复:
二分查找的平均时间复杂度: 第1次查找,能定位1个位置,恰好找到的概率是1/n 第2次查找,能定位2个位置,恰好找到的概率是2/n 第3次查找,能定位4个位置,恰好找到的概率是4/n ...... 第m次查找,能定位2^m-1个位置,恰好找到的概率是(2^m-1)/n 由于只有n个位置,假设最多查找m次,m根据以下方法计算出来。 下面计算查找次数的期望。
太感谢啦
crucifer10 2014-09-14
  • 打赏
  • 举报
回复
引用 5 楼 jwj070524 的回复:
早上起来的时候也想到了这个办法,还是很感谢哒
jwj070524 2014-09-13
  • 打赏
  • 举报
回复 1
二分查找的平均时间复杂度:

第1次查找,能定位1个位置,恰好找到的概率是1/n
第2次查找,能定位2个位置,恰好找到的概率是2/n
第3次查找,能定位4个位置,恰好找到的概率是4/n
......
第m次查找,能定位2^m-1个位置,恰好找到的概率是(2^m-1)/n

由于只有n个位置,假设最多查找m次,m根据以下方法计算出来。

下面计算查找次数的期望。
jwj070524 2014-09-13
  • 打赏
  • 举报
回复
二分查找最好最好时间复杂度是O(1)不用说。
最差时间复杂度如下:

jwj070524 2014-09-13
  • 打赏
  • 举报
回复
707wk 2014-09-13
  • 打赏
  • 举报
回复
百度没有嘛?
bai838052526 2014-09-13
  • 打赏
  • 举报
回复
压力大,表示路过顶贴~
derekrose 2014-09-13
  • 打赏
  • 举报
回复
数学题。。。。
crucifer10 2014-09-13
  • 打赏
  • 举报
回复
再问θ渐进记号的传递性怎么证明啊!!如果 f(n) = Θ(g(n)) , g(n) = Θ (h(n)), 求证 f(n) = Θ(h(n))

64,691

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧