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

时间:2018-04-02 00:24:04

标签: python loops time-complexity

thelist = [[2,3],[],[]]
n=len(thelist)
for i in range(1,n):
    if i <= k:
        thelist[i].append(1)
        for j in thelist[i-1]:
            c = j+1
            thelist[i].append(c)

我想弄清楚代码的时间复杂度。 Isit O(n ^ 2)还是O(n)?我认为它是O(n ^ 2),因为有2个循环但是我再次使用n次来运行第二个循环所以它可能是O(n)。我试图获得O(n)的时间复杂度。

1 个答案:

答案 0 :(得分:4)

  • 我们在thelist中迭代的项目数量是n-1
  • 在您迭代的主列表之前,子列表中的项目数量在第一次迭代时为2,然后每次+1次(2,3,4,...,n,n + 1) 。但是,我们可以忽略n + 1,因为我们不会迭代它。所以,最糟糕的情况是我们迭代了n次。

因此它是O((n-1)*n),我们通常会将其归结为O(n^2)