def f2(lst):
i = len(lst)
while i>0:
for j in range(i, i+10**8):
for k in range(i):
print(k)
i -= 2
时间复杂度是多少?虽然会运行n / 2次,但其余的呢?
答案 0 :(得分:2)
答案是O(n^2)
。
第一个循环是~in,第二个循环是恒定时间,第三个循环是~n。
答案 1 :(得分:1)
正如您所说,while
循环将迭代n/2
次,因此O(n)
复杂度。
第一个for
循环(for j in range(i, i+10**8)
)具有常量运行时O(1)
。
第二个for
循环具有复杂度O(n)
,并将执行n+n^2
次传递。
这给出了代码O(n^2)
复杂度