1.矩阵相乘的朴素算法
时间复杂度T(n)=Θ(n3),朴素矩阵相乘算法,思想明了,编程实现简单。时间复杂度是Θ(n^3)。伪码如下
for i ← 1 to n
do for j ← 1 to n
do c[i][j] ← 0
for k ← 1 to n
do c[i][j] ← c[i][j] + a[i][k]⋅ b[k][j]
2.strassen算法
矩阵乘法是典型采用了分治思想的算法,将一个 n × n的矩阵乘法分割为 2 × 2个(n/2) × (n/2)大小的子矩阵相乘。
P1=a ⋅(f−h)
P2= (a+ b)⋅h
P3= (c+ d)⋅e
P4=d ⋅(g−e)
P5= (a+ d)⋅(e+h)
P6= (b−d)⋅(g+h)
P7= (a−c)⋅(e+f