从【时间复杂度】到【函数的渐进上界】

函数渐进上界:一般意义上的时间复杂度

给定一个输入大小为 n 的函数:

void algorithm(int n) {
    int a = 1;  // +1
    a = a + 1;  // +1
    a = a * 2;  // +1
    // 循环 n 次
    for (int i = 0; i < n; i++) { // +1(每轮都执行 i ++)
        System.out.println(0);    // +1
    }
}

设算法的操作数量是一个关于输入数据大小 n 的函数,记为 T(n),则以上函数的操作数量为:

T(n) = 3+2n

T(n) 是一次函数,说明其运行时间的增长趋势是线性的,因此它的时间复杂度是线性阶。

我们将线性阶的时间复杂度记为O(n) ,这个数学符号称为大O记号(big-O notation),表示函数 T(n) 的 渐近上界(asymptotic upper bound)

时间复杂度分析本质上是计算“操作数量T(n) ”的渐近上界,它具有明确的数学定义。

如下图所示,计算渐近上界就是寻找一个函数 f(n) ,使得当 n 趋向于无穷大时, T(n) 和 f(n) 处于相同的增长级别,仅相差一个常数项 c 的倍数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Coder.Ren

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值