zoukankan      html  css  js  c++  java
  • 算法积累之算法时间复杂度

    算法时间复杂度是对算法效率的重要衡量标准。

    人们说的事前分析估算算法效率,就是对算法时间复杂度的计算。我在看书过程中的一些小误解。在此记录。

    举例。

    int sum = 0,n = 100;

    sum = (1+n)*n/2;

    printf("%d",sum);

    这个算法程序总共走了三步

    书上说明这是常数阶,而我却认为是平方阶 

    我说(1+n)*n/2 不就等于 n/2+n2/2么

    根据求大O 的方法 这应该是n2才对。后来一琢磨才发现。这是不对的,因为规模n压根就没有影响程序运行步骤。

    再看一下线性阶来理解下

    int i;

    int j;

    for(i = 0; i < n; i++){

      j += j+i;

    }

    分析 for循环里面的时间复杂度为O(1);

    加上for呢,就是O(n*1)

    这里n增大一1 那么运行步骤就要多一步,所以从这里可以分析出,时间复杂度实际上是说规模n造成程序运行步骤的数学关系。

    积累知识,分享知识,学习知识。
  • 相关阅读:
    第8周课下作业1(补)
    第八章课下测试
    POJ
    POJ
    HDU
    UVa
    UVa
    CodeForces
    ZOJ
    LightOJ
  • 原文地址:https://www.cnblogs.com/bin-pureLife/p/4042053.html
Copyright © 2011-2022 走看看