java中什么是二維數(shù)組
java中什么是二維數(shù)組
二維數(shù)組A[m][n],這是一個(gè)m行,n列的二維數(shù)組。設(shè)a[p][q]為A的第一個(gè)元素,即二維數(shù)組的行下標(biāo)從p到m+p,列下標(biāo)從q到n+q,按“行優(yōu)先順序”存儲(chǔ)時(shí)則元素a[i][j]的地址計(jì)算為:
LOC(a[i][j]) = LOC(a[p][q]) + ((i − p) * n + (j − q)) * t
按“列優(yōu)先順序”存儲(chǔ)時(shí),地址計(jì)算為:
LOC(a[i][j]) = LOC(a[p][q]) + ((j − q) * m + (i − p)) * t
存放該數(shù)組至少需要的單元數(shù)為(m-p+1) * (n-q+1) * t 個(gè)字節(jié)
二維數(shù)組又稱為矩陣,行列數(shù)相等的矩陣稱變方陣。對(duì)稱矩陣a[i][j] = a[j][i],對(duì)角矩陣:n階方陣主對(duì)角線外都是零元素.
基本運(yùn)算編輯
轉(zhuǎ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];
}
}