数据结构-算法分析

174 阅读1分钟

算法设计的要求

  1. 正确性
  2. 可读性
  3. 健壮性
  4. 高效率与低存储量

算法分析

  1. 时间复杂性 算法中各语句执行时间的总和

image.png

大O记法

image.png

  1. 空间复杂性 算法中所需占用的空间
  • O(1) - 算法执行所需要的临时空间不随着某个变量n的大小而变化
for(i = 1; i <= n; ++i)
    for(j = 1; j <= n; ++j)
        x= x + 1

上述代码块中无论n的大小如何变化,他的存储空间都是不变的,所以空间复杂度为O(1)

  • O(n) - 算法执行所需要的临时空间随着某个变量n的大小而成线性变化
f=[]
for(i = 0; i <= n; ++i)
    f[i] = i

上述代码块中f数组的长度与n成正比,所以空间复杂度为O(n)

参考文章:算法的时间与空间复杂度(一看就懂)