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

时间复杂度&空间复杂度

  • 时间复杂度
  • 计算的时候忽略低阶的次数
    • 复杂度的大小比较
  • 空间复杂度
    • 变量带来内存增加
    • 函数调用带来内存开销
  • 引用

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

主要度量两种复杂度:

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

时间复杂度

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

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

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

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

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

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

复杂度的大小比较

顺序:常对幂指阶

数据结构从0开始2---时间复杂度&空间复杂度_第1张图片

数据结构从0开始2---时间复杂度&空间复杂度_第2张图片
数据结构从0开始2---时间复杂度&空间复杂度_第3张图片

空间复杂度

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

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

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

变量带来内存增加

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

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

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

数据结构从0开始2---时间复杂度&空间复杂度_第4张图片

函数调用带来内存开销

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

数据结构从0开始2---时间复杂度&空间复杂度_第5张图片

数据结构从0开始2---时间复杂度&空间复杂度_第6张图片

引用

  • 王道考研-数据结构

你可能感兴趣的:(数据结构算法)