我很困惑,为什么答案不是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)是二次函数或其他非线性函数
答案 0 :(得分:0)
如果a
和b
是常数,那么它就是O(n)
。因为只有从for
到0
的第一个n
循环在n
中是线性的。其他两个for循环需要恒定的工作量。总复杂度为O(n*a+b) = O(n)
。如果a
或b
是n
的函数,则将有所不同。