循环的时间复杂度是多少?

时间:2014-03-29 13:07:31

标签: python algorithm time-complexity

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次,但其余的呢?

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)复杂度