怎么计算时间复杂度

一般来说,时间复杂度是总运算次数表达式中受n的变化影响最大的那一项,并且不考虑系数
1.
对于以下这样的一个算法,可以分析下
for(i=1;i<=n;++i)
{
for(j=1;j<=n;++j)
{
c[i][j]=0;//该步骤属于基本操作执行次数:n的平方次
for(k=1;k<=n;++k)
c[i][j]+=a[i][k]*b[k][j];//该步骤属于基本操作执行次数:n的三次方次
}
受影响最大的是最后一行代码,n^3,所以时间复杂度为O(n^3)
2.
对于此算法:
for(i=1;i<=n;i++)
             for(j=i;j<=n;j++)
                  s++;
 
 其中s++总共经过n+(n-1)+(n-2)+……+1+0=(n*(n-1))/2≈n^2/2 由于不需要考虑系数问题,所以其时间复杂度为O(n^2)
3.
再看下面的算法:
i=1;k=0;
       while(i<=n-1){
            k+=10*i;
          i++;       }
只循环n-1次,除掉系数-1可得时间复杂度为O(n)
 

转载于:https://www.cnblogs.com/Magi-wen/p/3648703.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值