我正在尝试制作子矩阵以将两个矩阵相乘。我已经获得了伪代码,因此所有试图找到在 java 中实现它的正确方法的尝试,我仍然停留在基础知识上。这个伪代码的 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 的规则数组来表示。使用 a[in + j] 在数组 a 中访问的矩阵(0 索引)时代的系数 Cij。
我的任务是实现两个版本:一个将子矩阵复制到新数组中,另一个使用两个索引变量来设置正在使用的矩阵的哪一部分