C++程序 实现矩阵相乘
给定两个矩阵,任务是将它们相乘。矩阵可以是正方形的,也可以是长方形的。
举个例子:
输入: mat1[][] = {{1, 2},
{3, 4}}
mat2[][] = {{1, 1},
{1, 1}}
输出: {{3, 3},
{7, 7}}
输入: mat1[][] = {{2, 4},
{3, 4}}
mat2[][] = {{1, 2},
{1, 3}}
输出: {{6, 16},
{7, 18}}
正方形矩阵相乘:
下面的程序将两个大小为4*4的正方形矩阵相乘,我们可以为不同的尺寸改变N。
输出
时间复杂度: O(n3)。可以使用Strassen的矩阵乘法进行优化。
辅助空间: O(n2)
长方形矩阵相乘:
我们使用C中的指针来乘以两个矩阵。请参阅以下帖子作为代码的先决条件如何将2D数组作为参数传递在C中?
输出
时间复杂度: O(n 3 )。它可以使用Strassen的矩阵乘法进行优化
辅助空间: O(m1 * n2)