美文网首页
《数据结构与算法之美--复杂度分析》

《数据结构与算法之美--复杂度分析》

作者: theo_NI | 来源:发表于2018-11-24 14:49 被阅读0次

《数据结构与算法之美--复杂度分析》

keyword:

​ 概念,大O表示法,常见的时间复杂度,最好、最坏、平均、均摊时间复杂度

概念:

  • 时间复杂度的全称是渐进时间复杂度,表示算法的执行时间与数据规模之间的增长关
  • 空间复杂度全称就是渐进空间复杂度(asymptotic space complexity),表示算法的
    存储空间与数据规模之间的增长关系

大O表示法:

  • T(n)=O(f(n))

    • 备注:T(n)表示代码执行的时间;n 表示数据规模的大小;f(n) 表示每行代码执行的次数总和。公式中的
      O,表示代码的执行时间 T(n) 与 f(n) 表达式成正比。

    • 例子:

      def cal(n):
          sum = 0#运行一次
          
          for range(n):    #运行N次
              sum = sum + i;#运行N次
      
          return sum;
      }
      

      T(n)=O(2n+1)

      备注:时间复杂度只看最高项,所以可简写为O(n)!

常见的时间复杂度:

  • O(1)、O(logn)、O(nlogn)、O( 2n指数表示),O(n!)
  • 时间复杂度为O(2n指数表示 ) 和 O(n!)的算法称为NP(Non-Deterministic Polynomial,非确定多项
    式)问题,因为其随着规模扩大,时间复杂度爆炸式增长,效率十分低下

最好、最坏、平均、均摊时间复杂度:

  • 同一段代码在不同情况下时间复杂度会出现量级差异,为了更全面,更准确的描述代码的时间复杂度
  • 平均时间复杂度:
    代码在不同情况下复杂度出现量级差别,则用代码所有可能情况下执行次数的加权平均值表示。
  • 均摊时间复杂度
    两个条件满足时使用:1)代码在绝大多数情况下是低级别复杂度,只有极少数情况是高级别复杂
    度;2)低级别和高级别复杂度出现具有时序规律。均摊结果一般都等于低级别复杂度。

相关文章

  • 数据结构与算法

    数据结构与算法之美 数据结构与算法之美1--如何学数据结构与算法之美2--复杂度分析(上)数据结构与算法之美3--...

  • 《数据结构与算法之美--复杂度分析》

    《数据结构与算法之美--复杂度分析》 keyword: ​ 概念,大O表示法,常见的时间复杂度,最好、最坏、平...

  • 算法的复杂度分析

    本文是对极客时间《数据结构与算法之美》03-04 节课关于算法复杂度分析的小结。 前面:为什么要学习数据结构与算法...

  • 重温:数据结构与算法 - 02复杂度分析(二)

    数据结构与算法之美-学习大纲 上一节,学习了什么是大O复杂度分析、有哪些复杂度分析技巧、什么是时间复杂度、什么是空...

  • 数据结构与算法之美(一):复杂度分析

    本章内容源于笔者对极客时间《数据结构与算法之美》以下章节的学习笔记: 复杂度分析(上):如何分析、统计算法的执行效...

  • 数据结构与算法-复杂度分析

    时间、空间复杂度:衡量算法执行小路的指标,数据结构与算法离不开时间、空间复杂度分析,复杂度分析是算法的精髓。 为什...

  • 数据结构与算法之时间复杂度分析

    复杂度分析,是所有数据结构与算法的重中之重,复杂度分析是整个算法学习的精髓,只要掌握了它,可以说数据结构和算法的内...

  • 数据结构学习大纲

    第一章 绪论 数据结构基本概念数据结构基本概念算法的基本概念算法的时间复杂度与空间复杂度分析基础时间复杂度分析空间...

  • 复杂度分析(上)

    +文本内容是对王争《数据结构与算法之美》课程的笔记, 如果有任何侵权行为, 请联系博主删除 为什么需要复杂度分析?...

  • 数据结构与算法 - 查找

    数据结构与算法系列文章数据结构与算法 - 时间复杂度数据结构与算法 - 线性表数据结构与算法 - 树形结构数据结构...

网友评论

      本文标题:《数据结构与算法之美--复杂度分析》

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