矩阵乘法——strassen算法

strassen算法 

是通过分治法进行快速矩阵乘法,运行时间达到O(n^lg7).

矩阵乘法——strassen算法_第1张图片

每一次进行18次加/减法,7次乘法。

分治过程如下:

矩阵乘法——strassen算法_第2张图片

而且这种运算方式是有局限的:

例如矩阵维数n必须是2的幂,用其他的数会导致分割矩阵时出现奇数。

每次分割计算生成的子矩阵消耗空间。

不像简单的方法那样有数值稳定性。

实现代码如下:

#include 
#include 
#include 
int** newmatrix(int **a,int len)
{
	int i;
	a = new int* [len];
	for (i = 0;i


你可能感兴趣的:(算法)