三角矩阵上三角列优先压缩存储:
我们以图4.9中的矩阵A矩阵为例,针对A上三角部分,采用以列为主序存储至一个一维数组B内,按照三角矩阵上三角元素构成可知,该部分有n(n+1)/2个元素,因为下三角中的元素都是0,只需要存储一个就好,故存储到数组B[1 2 3 … n(n+1)/2+1],采用该思路压缩存储矩阵A可参见图4.9,如此一来,A上三角内任意元素aij会唯一对应一个B[K],确定一维数组B[K]与i,j之间的关系。
在三角矩阵被压缩存储情况下,矩阵内任意元素aij会存储到B下标是k单元内,则一维数组B[K]中元素下标k与i、j之间的关系为:
当i≤j时,k=j(j-1)÷2+i;
当i>j时,k=n(n+1)÷2+1;
源码:
三角矩阵上三角列优先压缩存储—加法、减法、乘法、转置、秩、行列式值、伴随矩阵、逆
#include<stdio.h>