算法的复杂度分析
什么是复杂度分析?
- 数据结构和算法解决是“如何让计算机更快时间、更省空间的解决问题”
- 因此需从执行时间和占用空间两个维度来评估数据结构和算法的性能
- 分别用时间复杂度和空间复杂度两个概念来描述性能问题,二者统称为复杂度
- 复杂度描述的是算法执行时间(或占用空间)与数据规模的增长关系
为什么要进行复杂度分析?
- 测试结果非常依赖测试环境
- 测试结果受数据规模的影响很大
- 和性能测试相比,复杂度分析有不依赖执行环境、成本低、效率高、易操作、指导性强的特点
- 掌握复杂度分析,将能编写出性能更优化的代码,有利于降低系统开发和维护成本
如何进行复杂复分析?
大O复杂度表示法(它指出了算法在运行时间的增速)
int cal(int n) {