这个嵌套的for循环的时间复杂度是多少?

Buydadip

我在python中有以下代码:

def mystery(n):
    if n <= 50 :
        for i in range(n) :
            for j in range(n) :
                print i*j
    else :
        mystery(n-1)

对于以下嵌套的for循环:

for i in range(n) :
    for j in range(n) :

对于每一个inj通过迭代n多达i倍。难道不是那么复杂O(n^2)吗?但是,我的同龄人告诉我不是,有人可以解释为什么吗?

用户395760

这些循环仅在时执行n <= 50,因此它们只是对繁琐而固定的工作量的简要描述。最多print执行2500条语句。像任何常量一样,2500与渐近复杂度无关。只有在极限范围内的行为(即,当n无限增长时)才是重要的。

对于较大的n,该函数仅从n递减到50。该部分需要O(n)时间,因此,mystery总体上来说,时间复杂度是线性的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章