一n阶对称矩阵A以行为主序压缩存储在一个一维数组B
时间: 2024-06-02 19:13:36 浏览: 22
中,其中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的位置上。
相关问题
一n阶对称矩阵A以行为主序压缩存储在一个一维数组B中,存储其下三角元素(包括对角线),计算A[i,j]与B[k]之间的对应关系}
由于A是对称矩阵,所以A[i,j] = A[j,i]。当i ≤ j时,A[i,j]在B中的下标为k = i × (n-1) + (i-1) × (i-2) / 2 + j - i。当i > j时,A[i,j]在B中的下标为k = j × (n-1) + (j-1) × (j-2) / 2 + i - j。
以列序为主序的存储方式把矩阵存储到一个一维数组a中
以列序为主序的存储方式是把矩阵中的每一列依次存储到一维数组a中,即先把矩阵的第一列依次存储到数组a中,然后把第二列依次存储到数组a中,以此类推,直到把所有列都存储到数组a中为止。
假设矩阵的大小为m行n列,那么一维数组a的大小就为m*n。具体存储方式可以用双重循环来实现,外层循环遍历列,内层循环遍历行,将每个元素按列序依次存储到数组a中。例如,当存储矩阵的第i列时,内层循环依次将该列的第1行、第2行、...第m行元素存储到数组a中。
以列序为主序的存储方式在一些运算中可以提高计算效率,但在矩阵的转置和行交换等操作时可能会比较复杂。因此,在实际应用中,需要根据具体的需求来选择不同的存储方式。
总之,以列序为主序的存储方式将矩阵存储到一个一维数组a中是依次将矩阵的每一列按顺序存储到数组中,可以通过双重循环来实现,是一种常用的存储方式。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)