Kev*_*vin 0 python time-complexity
这是一个具有n^2复杂性的普通嵌套循环
for i in range(n):
for j in range(n): # <-- dependent on n
print(i,j)
Run Code Online (Sandbox Code Playgroud)
我很难理解为什么下一个循环n^2即使打印较少的语句也具有复杂性
for i in range(n):
for j in range(i): # <-- now it is dependent on i
print(i,j)
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
让我们计算最里面的表达式执行的次数,所以我们这样说:
(对于 j-loop,终止条件用粗体突出显示。当 j-loop 到达它时,最里面的表达式将不会被执行,我们开始下一次(如果有)i-loop 迭代。)
因此,我们将有1+2+3+...+n. 哪个是1/2(n*(n+1)),哪个是n^2。因此,时间复杂度仍然是 n^2。