调用嵌套在其中的另一个函数的函数的时间和空间复杂性

时间:2018-02-03 05:32:34

标签: big-o

def square(n):
    def same_number(n):
        if n == 0 :
            return 0
        else :
            return 1 + same_numer(n - 1)
    return n * same_number(n)

据我所知,same_number的时间复杂度和空间复杂度都是O(n)。然而,调用same_number的square的时间和空间复杂度是多少?它只是1还是你必须考虑same_number?

1 个答案:

答案 0 :(得分:0)

  

问:据我了解时间复杂度和空间复杂度   same_number都是O(n)。

正确。此函数递归调用n次,直到它开始返回结果,因此它是O(n)

  

问:然而,调用square的时间和空间复杂度是多少?   same_number?

它直接取决于same_number的时间和空间复杂度,因此再次O(n)。函数squaresame_number完成之前不会完成,因此其运行时间恰好是same_number的运行时间(它不会添加任何其他操作)。