Recursion 递归函数分析

Recursion 递归函数分析,recursion,recurrence,Recursion,Recurrence,我试图分析我编写的递归程序的性能 基本代码是 Cost(x) { 1 + MIN(Cost(x-1), Cost(x-2), Cost(x-3)) } 我想为呼叫成本的次数写一个循环关系。我怎么开始呢 类似于Tx=Tx/2。但我认为这是不对的 编辑:我可以将其表示为一棵树,对于3个对Cost的递归调用中的每个调用,其分支因子为3。那么它会更准确地表示为Tx=Tx/3吗?您真的编写了一个递归解决方案吗?我希望这是一项与线性迭代进行比较的任务 我想 T(X) = T(X-1)+T(X-2)+T(X

我试图分析我编写的递归程序的性能

基本代码是

Cost(x)
{
1 + MIN(Cost(x-1), Cost(x-2), Cost(x-3))
}
我想为呼叫成本的次数写一个循环关系。我怎么开始呢

类似于Tx=Tx/2。但我认为这是不对的


编辑:我可以将其表示为一棵树,对于3个对Cost的递归调用中的每个调用,其分支因子为3。那么它会更准确地表示为Tx=Tx/3吗?

您真的编写了一个递归解决方案吗?我希望这是一项与线性迭代进行比较的任务

我想

T(X) = T(X-1)+T(X-2)+T(X-3)+C
C is small constant

致电成本部的次数为:

C(x) = 1 + C(x-1) + C(x-2) + C(x-3)
因此,对于输入x,调用一次Cost加上调用x-1、x-2和x-3的次数。这是假设您的解决方案不使用备忘录。循环关系并不完美:


然而,使用备忘录,您的调用次数变为Cx=x,因为您只需要对0到x之间的所有i计算一次Ci。可能是Cx=x+1,这取决于您的初始条件

您能解释一下这背后的直觉吗?