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