计算以下代码的时间复杂度

2024-03-28 18:57:52 发布

您现在位置:Python中文网/ 问答频道 /正文

有人能帮我找出下面代码的复杂性吗

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)


Tags: 代码inforlenifdef时间range