![]() |
1
1
分治算法是否更有效取决于许多因素。在Python中,效率更高。 你的分析是正确的;假设标准的小学乘法,除法和征服做的乘法更少,更昂贵,并且渐近地使总运行时间变得一团糟(常数因子可能很重要——我仍然认为除法和征服会更快,因为大部分工作都发生在优化的C中,而不是Python的循环开销中,但这只是一种预感,鉴于Python不使用基本的乘法算法,很难进行测试)。 在进一步讨论之前,请注意Python中的大整数乘法是m^2的小o。特别地,它使用karatsuba,对于m位整数和m<n位整数,kartsuba大约为O(m^0.58n)=n 使用普通乘法的小项在渐近上并不重要,因此专注于大项,我们可以替换乘法成本,发现你的迭代算法大约在O(4^n m^1.58)左右,你的分治解在O(3^n m^ 1.58)附近。 |
![]() |
gvdr · 矩阵中的字符串操作:一个维度问题 12 年前 |