我正在尝试编写以下函数的运行时间的递归关系:
function G(n):
if n>0 then:
x=0
for i = 1 to n:
x = x + 1
G(n-1)
end if
我想出的是:
T(n) = 1 if n <= 0
T(n) = T(n-1) + 1 if n>0
然而,我被告知这是不正确的,我不知道为什么或正确的解决方案是什么。非常感谢任何帮助!
答案 0 :(得分:0)
T(n) = 1 if n <= 0
T(n) = T(n-1) + O(n) if n>0
而不是O(1)
,它应该是O(n)
,因为您从1循环到n
如果你解决了复发,总的复杂性将是O(n 2 )