怎么计算时间复杂度

一般来说,时间复杂度是总运算次数表达式中受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)
 
posted @ 2014-04-06 16:10  Lora_wen  阅读(334)  评论(0编辑  收藏  举报