二分的时间复杂度计算

二分查找的时间复杂度求导过程

1.设T(n)为求出规模为n问题的时间复杂度
2.O(1)表示用一次将规模为 n 的问题化为规模为 n / 2 的问题

那么我们有:

T(n) = T(n / 2) + O(1) * 1
     = T(n / 4) + O(1) * 2
     = T(n / 8) + O(1) * 3
     = T(n / 16) + O(1) * 4

设O(1)的系数是 x, 则可知 x 为将 T(n) 转化为 T(1) 的次数;
则:

  n(1 / 2) ^ x = 1
  (1 / 2) ^ x = 1 / n
  log(2)(n) = x

所以:

  T(n) = T(1) + O(1) * log(2)(n)
  T(n) = T(1) + O(log(2)(n))

因为T(1)在此问题中表示获取值,即T(1) = O(1)

  T(n) = O(1 + log(2)(n))

只取高次项,所以

  T(n) = O(log n)

因为T(n)表示的是求解规模为n问题的时间复杂度
所以二分查找的时间复杂度为O(log n)
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 概念 时间复杂度:用来定性的描述算法的执行时间的一个函数,更类似于一个耗时的趋势,函数表示为: O(f(n)) 名...
    printf200阅读 3,821评论 0 15
  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些阅读 2,219评论 0 2
  • 时间复杂度的定义 一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数,用T(n)表示,若有某个辅助...
    宄乇阅读 736评论 0 1
  • mean to add the formatted="false" attribute?.[ 46% 47325/...
    ProZoom阅读 3,414评论 0 3
  • 生活就是这样,各种意想不到让自己感觉不如意。拥有很多的人,会整天担心自己所拥有的一切会突然逝去,而几乎一无所有...
    傻傻不知阅读 305评论 0 2

友情链接更多精彩内容