算法设计的要求
- 正确性
- 可读性
- 健壮性
- 高效率与低存储量
算法分析
- 时间复杂性 算法中各语句执行时间的总和
大O记法
- 空间复杂性 算法中所需占用的空间
- 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)