卡拉苏巴算法 M(n) = 3M(n/2) 对于 n > 1, M(1) = 1 的递归关系如何?



算法为n/2个实例中的每一个进行3次乘法运算。因此,对于n>1,M(1)=1,递推关系不应该是M(n)=M(n/2)+3吗?

关键是准确理解分而治之是如何发生的。在Karatsuba算法的情况下:

Karatsuba算法的基本步骤是一个公式,它允许人们使用三次较小数字的乘法来计算两个大数字x和y的乘积,每次乘法的位数大约是x或y的一半,再加上一些加法和数字移位。

所以,这意味着,要解决一个大问题,你需要递归地解决三个基本相同的小问题(然后进行一些重组步骤)。你在标题中提出的复杂性递归公式正是这个公式的公式。

最新更新