有人能帮我找出下面代码的复杂性吗
def mystery(n):
sum = 0
if n % 2 == 0:
for i in range(len(n + 10000)):
sum += 1
elif n % 3 == 0:
i, j = 0, 0
while i <= n:
while j <= n:
sum += j - 1
j += 1
i += 1
else:
sum = n**3
以下代码的时间复杂度是否为O(n^2),因为在最坏的情况下,将执行elif语句,因此外部while循环将执行n次,而嵌套while循环将执行n次一次,这仅仅是因为我们从未重置j?因此,我们将有O(n^2+n),因为前导项是n^2,复杂性将是O(n^2)
在
elif
部分:i
=0时,while j <= n:
循环是O(n)李>i
>;0,j
=n+1,因此while j <= n:
循环是O(1)李>所以
elif
部分是O(n)+O(n*1)=O(n+n)=O(n)相关问题 更多 >
编程相关推荐