T(n)= 2n ^ 2 + n + 1 我理解2n ^ 2和1部分,但对n感到困惑。
test = 0
for i in range(n):
for j in range(n):
test = test + i*j
答案 0 :(得分:0)
这实际上取决于您的教授/书籍如何真正降低运营成本,但是我认为我们可以从这里弄清楚。让我们分解2n^2 + n + 1
。 n^2
来自两个循环。
for i in range(n):
for j in range(n):
2
系数大概来自两个运算。注意:这仅仅是恒定的时间复杂度AKA O(1)
test = test + i * j
range(n)
的初始计算可能会花费n
(在计算中为+ n
)。然后,可以优化对range(n)
的第二次调用以使用缓存的值。
最后,它可能是test = 0
语句,开头可能是+ 1
。这可能总计2n^2 + n + 1
。但是,最糟糕的情况是时间复杂度仍为O(n^2)
。