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?
答案 0 :(得分:0)
问:据我了解时间复杂度和空间复杂度 same_number都是O(n)。
正确。此函数递归调用n
次,直到它开始返回结果,因此它是O(n)
。
问:然而,调用square的时间和空间复杂度是多少? same_number?
它直接取决于same_number
的时间和空间复杂度,因此再次O(n)
。函数square
在same_number
完成之前不会完成,因此其运行时间恰好是same_number
的运行时间(它不会添加任何其他操作)。