Chapter3 复杂度分析(上):如何分析,统计算法的执行效率和资源消耗

数据结构解决的问题:“快” + “省”,即为时间,空间复杂度分析

1:为什么需要复杂度分析?

因为通过统计手段分析的结果受到两个因素的影响,一:测试结果非常依赖测试环境,二:测试结果受数据规模的影响很大

2:大O复杂度表示法

所有代码的执行时间T(n)与每行代码的执行次数n成正比。

T(n) = O(f(n))

3:时间复杂度分析渐进时间复杂度

1:只关注循环执行次数最多的一段代码

2:加法法则:总复杂度等于量级最大的那段代码的复杂度

3:乘法法则:嵌套代码的复杂度等于嵌套内外代码复杂度的乘积

4:几种常见时间复杂度量级:

多项式量级:

常数阶O(1)

u 对数阶O(logn)

线性阶O(n)

线性对数阶O(nlogn)

平方阶O(n*n),立方阶O(n*n*n)… k方阶O(n*……*n)

非多项式量级:

指数阶O(2*……*2)

阶乘阶O(n!)

5:空间复杂度分析: 渐进空间复杂度

常见的空间复杂度:O(1) O(n) O(n*n)

原文地址:https://www.cnblogs.com/zhaohu/p/9974988.html