pytho代码分析示例

a = 5
b = 6
c = 10
for i in range(n):
  for j in range(n):
    x = i * j
    y = j * j
    z = i * j
for k in range(n):
  w = a * k + 45
  v = b * b
d = 33

分析如下

赋值操作的数量是4项之和:T(n)=3+3n^2+2n+1.
第1项是常数3,对应起始部分的3条赋值语句
第2项是3n^2,因为有3条语句要在嵌套循环中重复n^2次
第3项是2n,因为两条语句要循环n遍,
第4项是常数1,代表最后那条赋值语句
T(n)=3+3n^2+2n+1=3n^2+2n+4
很容易看出来,n^2起主导作用,所以这段代码的时间复杂度是O(n^2)。当n变大时,其他项以及主导项的系数都可以忽略
posted @ 2022-08-08 18:22  我在路上回头看  阅读(25)  评论(0编辑  收藏  举报