第二节 基本概念

要点

  • 时间复杂度
  • 空间复杂度

1.1 时间复杂度

  • 代码的执行时间 T(n) 与每行代码的执行次数 n 成正比。
  • 大O表示法只关注n的最高阶;也就是说:分析一个算法、一段代码的时间复杂度的时候,也只关注循环执行次数最多的那一段代码就可以了

计算规则

    1. 只关注循环执行次数最多的一段代码
    1. 加法法则:总复杂度等于量级最大的那段代码的复杂度
      如果 T1(n)=O(f(n)),T2(n)=O(g(n));那么 T(n)=T1(n)+T2(n)=max(O(f(n)), O(g(n))) =O(max(f(n), g(n)))
    1. 乘法法则:嵌套代码的复杂度等于嵌套内外代码复杂度的乘积
      ``
      如果 T1(n)=O(f(n)),T2(n)=O(g(n));那么 T(n)=T1(n)T2(n)=O(f(n))O(g(n))=O(f(n)*g(n))
  • 最好情况时间复杂度:在最理想的情况下,执行这段代码的时间复杂度

  • 最坏情况时间复杂度:在最糟糕的情况下,执行这段代码的时间复杂度

  • 平均情况时间复杂度:

  • 加权平均时间复杂度

  • 均摊时间复杂度

``

1.2 空间复杂度

空间复杂度(Space Complexity)是对一个算法在运行过程中临时占用存储空间大小的量度。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 树的定义 之前一直介绍的是一对一的线性结构,可现实中还有多一对多的情况需要处理,这就是今天要介绍的一对多的数据结构...
    JsCoderr阅读 5,603评论 0 3
  • 超级账本是Linux基金会发起的项目,意在提供一套企业级区块链应用框架,便于大家开发基于区块链技术的应用。 Fab...
    Abububiu阅读 5,583评论 0 0
  • 一、数据结构 1.基本概念 1.1数据 程序的操作对象,用于描述客观事物. 1.2.数据的特点 可以输入到计算机 ...
    MrDemon_阅读 2,435评论 0 0
  • 算法: 解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令标识一个或多个操作。 算法的特性:...
    暮想sun阅读 681评论 0 0
  • 一、什么是算法 1.1 算法和程序的区别 算法的定义:计算或解决问题的步骤和思想。可以将算法比喻做食谱,想要做出特...
    无忧_c063阅读 1,839评论 0 0