第一章:算法之美
时间复杂度:算法运行需要的时间,一般将算法的执行次数作为时间复杂度的度量标准
空间复杂度:算法占用的空间大小。一般将算法的辅助空间作为衡量空间复杂度的标准
复杂度对比
O(1)<O(log n)<O(n)<O(nlogn)<O( n^2 )< O(n^3) <O(2^n) <O(n!) <O(n^n)
ceyio通俗解释:改进的趋势主要都是体现在上述这两个方面
一些例子:
- 递归问题 通常采用栈的方法来解决
【ceyio通俗解释:】
若f(n)=2*f(n-1) (n>1) ,f(1)=3.2
当n=4时,
【思路】
f(4)=f(3)*2 ……①
f(3)=f(2)*2 ……②
f(2)=f(1)*2 ……③
f(1)=3.2 ……④
采用栈的方式即如下图:(占用的空间为4)
第一次 | 第二次 | 第三次 | 第四次 |
---|---|---|---|
- | - | - | ④入栈 |
- | - | ③入栈 | ③ |
- | ②入栈 | ② | ② |
①入栈 | ① | ① | ① |