一n阶对称矩阵A以行为主序压缩存储在一个一维数组B
时间: 2024-06-02 08:13:36 浏览: 232
n阶对称矩阵
5星 · 资源好评率100%
中,其中B[0]到B[n-1]存储A的第一行到第n行的主对角线元素,B[n]到B[2*n-2]存储A的第二行到第n-1行的次对角线元素,B[2*n-1]到B[3*n-3]存储A的第一行到第n-2行的次对角线元素,以此类推,直到B[(n-1)*n/2]到B[n*(n+1)/2-1]存储A的最后一行的次对角线元素。
对于第i行第j列的元素A[i][j],如果i<=j,则A[i][j]存储在B[j*(j+1)/2+i]中;否则,A[i][j]存储在B[i*(i+1)/2+j]中。
例如,对于一个3阶对称矩阵A,其行为主序压缩存储在一维数组B中的元素分别为:
B[0]:A[0][0]
B[1]:A[0][1]
B[2]:A[1][1]
B[3]:A[0][2]
B[4]:A[1][2]
B[5]:A[2][2]
对于第2行第1列的元素A[1][0],由于1>0,因此存储在B[1*(1+1)/2+0]=1的位置上。
对于第1行第2列的元素A[0][1],由于0<=1,因此存储在B[1*(1+1)/2+0]=1的位置上。
阅读全文