本专题为在b站上学习数据结构与算法课的随堂笔记,所学视频为 AV53583801。
时间复杂度
-
大O表示法:T(n) = O(g(n))
-
基本计算规则:
(1)基本操作,如a+b,认为其时间复杂度为O(1)
(2)顺序结构,按加法计算
(3)循环结构,按乘法计算
(4)分支结构,取最大值计算
(5)判断一个算法的效率时,只考虑最高次项,其他可忽略
(6)无特殊说明时,算法的时间复杂度指最坏时间复杂度(即算法最多需要多少操作)
注意:一个函数的复杂度不是1,应该看函数所封装的步骤
举例
for i in range(0,n): #n
for j in range(0,n): #n
k = n - i - j #1
if i**2 + j**2 == k**2: #max(0,1)
print("a,b,c: %d,%d,%d" %(i,j,k))
T(n) = n * n * (1+max(0,1)) = 2*n2 = O(n2