我试着用子矩阵把两个矩阵相乘成一个矩阵。我已经得到了伪代码,因此所有试图用java实现它的方法,我仍然停留在基础上。这个pseoudocode的java代码的总体结构是什么样的?
SQUARE-MATRIX-MULTITPLY-RECURSIVE(A,B)
n = A.rows
let C be a n x n matrix
if n == 1
c11 = a11 * b11
else partition A, B and C
C11 = SQURAE-MATRIX-MULTIPLY.RECURSIVE(A11,B11)
+ SQUARE-MARTIX-MULTIPLY-RECURSIVE(A12,B21)
C12 = SQUARE-MATRIX-MULTIPLY-RECURSUÌVE(A11,B12)
+ SQUARE-MATRIX-MULTIPLY-RECURSIVE(A11,B12)
C21 = SQUARE-MATRIX-MULTIPLY-RECURSUÌVE(A12,B22)
+ SQUARE-MATRIX-MULTIPLY-RECURSUÌVE(A22,B21)
C22 = SQUARE-MATRIX-MULTIPLY-RECURSUÌVE()A21,B12)
+ SQUARE-MATRIX-MULTIPLY-RECURSUÌVE(A22,B22)
return C;
因为矩阵a和b是nxn矩阵,所以它们可以用大小为n^2的正则数组来表示。矩阵中的系数cij(0索引)era在数组a中用[in+j]访问。
我的任务是实现两个版本:一个是将子矩阵复制到新数组中,另一个是使用两个索引变量来设置矩阵的哪个部分正在被使用
1条答案
按热度按时间ljsrvy3e1#
这里是稀疏矩阵乘法的实现
稀疏表示的向量类:
主要方法/调用代码: