计算时间复杂度

最近学习了计算时间复杂度,发现没有之前想象的那也高深莫测,只要记住三条准则就可以了。

现总结如下:

1. 去掉运行时间中的所有加法常数。

2. 只保留最高阶项目。

3. 如果最高阶项目存在且不是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的三次方 次
}
}

1. 算法运行次数n的平方+n的三次方
2. 只保留最高阶项目n的三次方。

3. 这里没有相乘的常数,所以第三步得到n的三次方。

最终时间复杂度是F(n)=O(n三次方)

 

posted @ 2017-01-12 23:02  测试人生-  阅读(392)  评论(0编辑  收藏  举报