[1, 5, 4, 7, 8, 62, 10] 最坏的情况(执行步骤最多)
[1, 2, 3, 4, 5, 6, 7] 最好的情况(执行步骤最少)
在衡量算法复杂度的时候, 一般采用 最坏时间复杂度
时间复杂度计算的基本规则:
所有的语言都具备的控制流程:顺序,条件,循环
基本操作:只有常数项,其复杂度为O(1)
顺序结构:+
循环结构:*
分支:时间复杂度取最大值
判断算法效率时,旺旺只要操作数量的最高次项,其它次要想和常数项忽略不计。
没有特殊说明,一般指的最坏时间复杂度。
for a in range(1001): #循环
for b in range(1001): #循环
c = 1000 - a - b #顺序
if a + b + c == 100 and a**2 + b**2 == c**2: #分支
print("a=%d, b=%d, c=%d" % (a, b, c))
T(n) = n * n *(1 + max(1, 0)) = n2*2 = O(n2)