这种复杂度的计算主要是来度量算法的效率。

主要度量两种复杂度:

  • 时间复杂度,需要计算多少次
  • 空间复杂度,需要占用多少空间

时间复杂度

时间复杂度主要考虑的是计算的次数,而不是实际时间,因为计算机性能不一样需要用的时间也是不一样的。

时间复杂度,用来事前预估算法时间开销和问题规模n的关系。这里的n就是指平时我们数据的量或者是输入的参数等。例如循环n次。

时间复杂度其实包括三种:

  1. 最好时间复杂度,就是考虑最好的情况
  2. 平均时间复杂度,考虑所有输入数据都等概率出现的情况
  3. 最坏时间复杂度,

计算的时候忽略低阶的次数

对于计算机来说二次方在三次方前面不足为道。并且前面的系数也是不足为道的。

复杂度的大小比较

顺序:常对幂指阶

数据结构从0开始2---时间复杂度&空间复杂度

数据结构从0开始2---时间复杂度&空间复杂度
数据结构从0开始2---时间复杂度&空间复杂度

空间复杂度

空间复杂度表示程序运行时对内存的需求程度。

两个因素会影响内存占用程度:

  1. 变量和内存增加有关
  2. 函数调用也会带来内存增加

变量带来内存增加

如果生成新的变量则会带来内存怎讲,如果变量数量不增加则空间复杂度是O(1).

对于一维数组来说,他是O(n),因为数组越长内存占用越多。
对于二维数组来说是n平方。

因为是相对于输入变量来说的。比如:

数据结构从0开始2---时间复杂度&空间复杂度

函数调用带来内存开销

因为调用函数的时候会存储局部变量,所以会占用内存。

数据结构从0开始2---时间复杂度&空间复杂度

数据结构从0开始2---时间复杂度&空间复杂度

引用

  • 王道考研-数据结构

相关文章:

  • 2021-08-24
  • 2021-06-10
  • 2021-11-25
  • 2021-10-21
  • 2022-02-10
  • 2022-12-23
  • 2021-12-12
猜你喜欢
  • 2021-11-29
  • 2022-02-01
  • 2021-05-02
  • 2021-10-03
  • 2021-11-29
  • 2022-02-10
  • 2021-10-28
相关资源
相似解决方案