zoukankan      html  css  js  c++  java
  • 计算时间复杂度

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

    现总结如下:

    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三次方)

  • 相关阅读:
    HDU 6043
    HDU 6033
    HDU 6041
    HDU 6050
    HDU 6053
    HDU 6055
    HDU 6045
    HDU 6044
    HDU 6040
    ZUFE 1035 字符宽度编码(字符串)
  • 原文地址:https://www.cnblogs.com/clarke157/p/6280204.html
Copyright © 2011-2022 走看看