美文网首页
2.5 算法时间复杂度评估

2.5 算法时间复杂度评估

作者: Aurochsy | 来源:发表于2019-03-22 14:14 被阅读0次

Chapter2: 时间复杂度分析、递归、查找与排序

5. 算法时间复杂度评估

大O表示法评估算法复杂度

什么是大O表示法

所谓的时间复杂度,实际上就是一个输入规模 n与函数运行时间f(n) 的关系,比如 O(n^2) 就表示当处理100个输入时,要进行10000次访问/计算操作, 再乘以单次运算需要的单位时间即得到算法运行时间。

大O表示法,忽略常数项、低阶项等非主体部分,如 f(n)=2n^2=n+5 的时间复杂度为O(n^2), 对于 O() 里面的内容,如这里的 n^2 ,存在一个常数使得函数的运行时间 f(n) 趋近并小于 c*n^2 ,这个 n^2 成为这个算法的渐进上界。

大O表示法评估算法时间复杂度距离

  • O(n)

    for(int i=0;i<n;i++){
        k=k+i;
    }
    
  • O(n^2)

    • example1

      for(int i=0;i<n;i++){
          for(int j=0;j<n;j++){
              k=k+i+j;
          }
      }
      
    • example2

      下面算法中,内层循环的限制条件是 i<j ,相当于总执行次数为1+2+3+...n=(1+n)n/2, 时间复杂度仍为O(n^2)

      for(int i=0;i<n;i++){
          for(int j=0;i<j;j++){
              k=k+i+j;
          }
      }
      
  • O(log(n))

    注意 count 的增长是指数级的,设执行次数为 k, 则2^k=n, k=log(n) ,即时间复杂度为O(log(n))

    int count=1;
    while(count<n){
        count=count*2;
    }
    

常见函数复杂度计算

现代计算机的处理速度大概是1s处理10^8的数据,由此我们可以推算出下表:
计算方法,问题规模是自变量,时间复杂度是函数,将问题规模代入时间复杂度公式,再除以10^8 即得到所耗费的时间。而问题规模实际上就是执行的语句数

时间复杂度 所耗费的时间 问题规模
O(logn) 27/10^8 10^8
O(n) 1 10^8
O(n^2) 10^8 10^8
O(n^3) 10^16 10^8
O(2^n) 2(108) 10^8

怎样的时间复杂度才算合格的算法

常见的时间复杂度评价

参考资料

[1] 常见函数时间复杂度

相关文章

  • 2.5 算法时间复杂度评估

    Chapter2: 时间复杂度分析、递归、查找与排序 5. 算法时间复杂度评估 大O表示法评估算法复杂度 什么是大...

  • 数据结构与算法(二)时间复杂度和空间复杂度

    算法效率 算法的效率主要由以下两个复杂度来评估: 时间复杂度(time complexity):评估执行程序所需的...

  • 算法の 前戏

    废话时间: 一:时间复杂度:用来评估算法运行效率(时间)的一个式子。 一般来说:时间复杂度高的算法比复杂度低的算法...

  • 算法笔记 —— 复杂度

    算法的效率 算法的效率主要由以下两个复杂度来评估: 时间复杂度:评估执行程序所需的时间。可以估算出程序对处理器的使...

  • 数据结构与算法 学习笔记-5

    时间复杂度我们评估一种算法的优劣,可以使用它的时间复杂度和空间复杂度来衡量,我们一般讨论的是该算法的最坏时间复杂度...

  • 如何评判算法好坏

    算法好坏可以通过下面两个纬度进行评判: 时间复杂度评估执行程序的次数(执行时间) 空间复杂度评估执行程序所需的存储...

  • 算法基础概念(一)

    一 . 概念 我们评估一种算法的优劣,可以使用它的时间复杂度和空间复杂度来衡量(一个算法的优劣主要从算法的执...

  • 算法复杂度

    算法优劣评估 正确性、可读性、健壮性 时间复杂度: 估算程序指令的执行次数(执行时间) 空间复杂度: 估算所需占用...

  • 复杂度概念

    时间复杂度 评估算法运行效率的一个单位,常见的时间复杂度:O(1) O(n) O(n^2) O(n^3) O(lo...

  • 算法相关

    算法复杂度相关概念:漫画:什么是时间复杂度?算法的时间复杂度和空间复杂度详解算法题库:力扣 一、排序算法 排序算法...

网友评论

      本文标题:2.5 算法时间复杂度评估

      本文链接:https://www.haomeiwen.com/subject/wbnlvqtx.html