以下代码段的运行时间大O是多少? [假设f1(n)=O(n)
]
function Recurse(A[1..n])
f1(n)
t1 <-- Recurse(A[1..(n-1)])
t2 <-- Recurse(A[(2..n])
return (t1+t2)
end function
是O(n)
??或其他什么?
答案 0 :(得分:0)
这在f1
:O(2^n)
调用的调用中是指数级的。因此,如果f1
为O(n)
,那么这将显示为O(n 2^n)
。
你有n个步骤,并且在每个点上,它细分为两个分支。它与高度为n的完整二叉树相同。