时间复杂度
时间复杂度:算法执行运算的操作数丢掉低阶数,再去掉所有系数。
例如
a = 1#操作数1
b = 2#操作数1
c = 3#操作数1
for i in n:#操作数n
print(a,b,c)#操作数1
加起来得到O(n*1+3),即时间复杂度为O(n)。
去掉低阶数的原因是因为高阶项才是函数主要影响因数,好比统计家庭财产时,算上的是你父母的存款而不是你的零花钱。
常见时间复杂度排序:
O(1) < O(logn) < O(n) < O(nlogn) <O(n2) <O(n3) < O(2n) < O(n!) < O(nn)
之间的关系如克,千克,斤,公斤,吨,越到后面越大。
时间复杂度计算法则
法则 | 计算方法 |
---|---|
for循环 | 循环体 * 循环次数 |
嵌套的for循环 | 循环体 * 循环体 * 循环次数 |
顺序语句 | 各个语句运行时间之和 |
if/else语句 | 总的时间复杂度按照时间复杂度最大的路径计算 |
函数 | 函数由于本身是由基本语句构成,计算时间复杂度的时候需要另算 |