为什么答案不是O(n ^ 2)?

时间:2019-04-29 18:49:19

标签: algorithm big-o

我很困惑,为什么答案不是O(n ^ 2)? 我的T(n)是2 + 2n ^ 2 + n +1,所以它应该是O(n ^ 2)。 但是答案不是。

a = 4
b = 10
for i  in range(n):
    for j in range(a):
        total = total + 1
for i in range(b):
    total = total + 1
print(total)

部分(a)错误:T(n)是二次函数或其他非线性函数

1 个答案:

答案 0 :(得分:0)

如果ab是常数,那么它就是O(n)。因为只有从for0的第一个n循环在n中是线性的。其他两个for循环需要恒定的工作量。总复杂度为O(n*a+b) = O(n)。如果abn的函数,则将有所不同。