数据结构与算法读书笔记-2(复杂度分析)
https://time.geekbang.org/column/article/40036
- 复杂度分析是算法的精髓
- 事后统计法(运行代码进行测试)
-
测试结果非常依赖测试环境
-
测试结果受数据规模的影响很大
-
-
大 O 复杂度表示法(估算代码执行时间)
-
假设每行代码执行的时间都是一样的(单位时间)、那么代码执行的时间就和代码执行的次数成正比
-
时间复杂度
- 是什么 ? T(n) = O(f(n)) -> f(n)即是我们常说的复杂度
- 怎么分析? n表示数据的规模大小 , T(n) 表示代码执行的时间,f(n) 表示代码执行的次数,O表示T(n)和f(n)成正比
- 有哪些?
- 多项式量级
- O(1)常量阶 -> 代码执行时间不随n变大而变大
- O(logn),O(nlogn) 忽略对数的底,归并排序和快速排序都是O(nlogn)
- O(m+n),O(m*n)
- 非多项式两级
- O(2n) 和 O(n!)
- 多项式量级
- 空间复杂度
- 分析变量申请空间
-
是谁来自江河湖海,却囿于昼夜厨房与爱
浙公网安备 33010602011771号