所以我读到Strassen的矩阵乘法算法的复杂度是O(n^2.8),但它只有在A是n x n,B是n x n时才有效,如果A是m x n,B是n x o,并且m比n和o大得多,但n和o仍然非常大,用零填充可能会使乘法花费更长的时间我做的一个项目需要这样一个矩阵的乘法,所以我希望得到一些建议,我应该使用传统算法,或者有什么方法可以修改Strassen的算法来更快地完成它?
我已经编写了Strassen算法的实现,但是由于递归创建静态数组,它运行得很慢。我知道动态数组可以解决这个问题,但我不允许使用它们。通常,主要的问题是,即使在较大的值下,该算法也比通常慢几倍。 strassen(a, b, m2, m, m, x1, y1, x2, y2);
strassenstrassen(s1, s5, m5, m, m, 0, 0, 0, 0);