我已经解决了一个递归关系,其运行时间为Θ(2 ^ n),指数 时间。 如何找到相同的递归关系的Ω和O.
我猜如果它是Θ(2 ^ n),它也应该是O(2 ^ n),我是对的吗? 如何找到Ω,下限?
我尝试解决递归关系:
T(n)= 2T(n-1)+ C.
答案 0 :(得分:5)
答案 1 :(得分:4)
如果是家庭作业,您可以尝试将其绘制为递归树,其中节点表示函数调用所需的操作的复杂性。
编辑:关于下限,欧米茄被定义为下限。如果你有Theta(确切的行为),你也有Omicron和Omega ......它们的精确度就不那么精确了。
所以
Theta(n) <=> O(n) AND Omega(n)
<强> SPOILER 强>
如果我没记错的话,这就是你解释它的方式......
你有一棵树,你的根只有C
(解决方案的工作),你必须吐两个分支(再次用C
作为工作),节点获得分支n
次
C
/|
C C
/| |\
C C C C
/| ......
完整解决方案
因为树的深度为n
,所以您的2^n
个节点都有C
的复杂度,那么您的n-1
级别的复杂度为C, 2C, 4C....(2(n-1)*C)
{1}},它们应该总结为2^n*c
因此,最终的复杂性应为2*(2^n)*C
theta(2^n)