为解决计算计算效率问题,Strassen算法由此出现,该算法基本思想是分治,将计算2个n阶矩阵乘积所需的计算时间改进到0(nlog7) = 0(n2.81)
我们知道,C11=A11*B11+A12*B21...伪代码如下:
// 递归维度分半算法:
public void STRASSEN(n,A,B,C);
{
if n=2 then MATRIX-MULTIPLY(A,B,C)
/ /结束循环,计算...STRASSEN(n/2,A21+A22,B11,M3);
STRASSEN(n/2,A22,B21-B11,M4);
STRASSEN(n/2,A11+A22,B11+B22,M5);...STRASSEN(n/2,A12-A22,B21+B22,M6);
STRASSEN(n/2,A11-A21,B11+B12,M7);}
}
算法导论伪代码:
2...(第四版)
算法导论第三版
博客园