时间复杂度

我们知道,算法中有时间复杂度这样一个概念,那么如何理解时间复杂度呢?下面举个例子:

话说大数学家高斯小时候老师出了个题:

1+2+3+···+100=?

于是大家都认真计算起来,只有高斯不为所动,老师很诧异,问他为什么不开始计算,高斯说他算完了:

1+2+3+···+100

+

100+99+98+···+1

=

101+101+···+101

= 102*100/2=5050

果然是天才的思路!

// 通过具体的 n 的步骤就可以推演出算法的复杂度
int sum1(int n){ // 时间复杂度 O(n)
    int sum = 0; // 执行 1 步
    for (int i = 1; i <= n; i++) // 执行 n 步
    {
        sum += i;
    }
    return sum;
}

int sum2(int n){// 时间复杂度 O(1)
    return (1 + n) * n / 2;// 1步
}

这个例子就告诉我们,凡夫俗子的算法复杂度就是O(n),天才的算法复杂度就是O(1)。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

AD钙奶-lalala

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

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

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

打赏作者

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

抵扣说明:

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

余额充值