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

问题描述 投票:0回答:1

我很困惑,为什么答案不是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)是二次函数或其他非线性函数

algorithm big-o
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.