Strassen的整数乘法算法有一个版本,它使用三向分裂(将n位数除以n/3位的3部分)并取O(n^1.46)。
我的问题是,为什么这种方法通常不比通常使用O(n^1.59)的双向拆分方法更可取?
有什么想法或链接可以帮助我理解吗?(我在网上查了一下,但什么也找不到)

最佳答案

那是因为在练习中第二个动作会慢一些符号并不总是与实际运行速度一致。
例子:

f(n) = 1000*n
g(n) = n*lg(n)

o(f(n))优于o(g(n)),使f(n)“更快”,而在实践中,n永远不会大到让我们更喜欢f(n)。

关于algorithm - Strassen的n位数字乘法算法(2向拆分与3向拆分),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29801199/

10-11 04:07