java中什么是二維數組
java中什么是二維數組
二維數組A[m][n],這是一個m行,n列的二維數組。設a[p][q]為A的第一個元素,即二維數組的行下標從p到m+p,列下標從q到n+q,按“行優(yōu)先順序”存儲時則元素a[i][j]的地址計算為:
LOC(a[i][j]) = LOC(a[p][q]) + ((i − p) * n + (j − q)) * t
按“列優(yōu)先順序”存儲時,地址計算為:
LOC(a[i][j]) = LOC(a[p][q]) + ((j − q) * m + (i − p)) * t
存放該數組至少需要的單元數為(m-p+1) * (n-q+1) * t 個字節(jié)
二維數組又稱為矩陣,行列數相等的矩陣稱變方陣。對稱矩陣a[i][j] = a[j][i],對角矩陣:n階方陣主對角線外都是零元素.
基本運算編輯
轉置矩陣
//其中A, B是m*n矩陣:
void tramat(matrix A,matrix B){ int i,j;
for(i=0; i
for(j=0;j
B[j]=A[j];
}
矩陣相加
//其中A,B,C是m*n矩陣:
void addmat(matrix C, matrix A, matrix B){
int i, j;
for(i=0; i
for(j=0;j
c[j] = A[j] + B[j];
}
矩陣相乘
//其中A是m*n矩陣,B是n*1矩陣,C為m*1矩陣
void mutmat(matrix C, matrix A, matrix B){
int i, j, k;
for(i=0; i
for(j=0; j
C[j]=0;
for(k=0; k
C[j] = C[j] + A[k] * B[k][j];
}
}