You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何计算指定循环的代价函数及其Big-O表示法?

循环代价函数计算与Big-O分析

代价函数推导

先看给定的循环代码:

for (int i=3; i^2<N; i=i+2) {
    // One operation here
}

循环的代价函数等于它的执行次数,因为每次循环内固定执行1个操作。推导过程如下:

  • 循环终止条件是i² ≥ N,换句话说,只要i < √N,循环就会继续执行。
  • i从3开始,每次步长加2,取值序列为3、5、7……k(k是小于√N的最大奇数)。
  • 这是首项为3、公差为2的等差数列,第n项的表达式为2n + 1(代入n=1得3,n=2得5,完全匹配序列)。
  • 令第n项小于√N,得到不等式:2n + 1 < √N,解后得n < (√N - 1)/2。循环次数n就是这个值的向下取整。
  • 还要考虑边界情况:当N≤9时,初始i=3的平方等于9,此时i²<N不成立,循环执行0次。

最终代价函数T(N):

  • 当N ≤9时,T(N) = 0
  • 当N >9时,T(N) = ⌊(√N - 1)/2⌋

Big-O表示法

分析代价函数的增长趋势:(√N -1)/2中的常数项和系数对渐进复杂度没有影响,忽略后可得循环的时间复杂度为O(√N)。

内容的提问来源于stack exchange,提问作者Udbhav Prasad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 22:15:53