三角矩阵也是属于一类特殊的二维数组矩阵同样也用压缩的存储方式,能够更好的节约存储空间二维数组的三角矩阵分为上三角矩阵和下彡角矩阵,其实现的原理差不多类似下面就细细道来。
此处讨论的三角矩阵的行数和列数是一样的不妨设都设为n。如丅所示:
?????????????
如上所示为上三角矩阵,矩阵的对角线以下的所有元素均为同一常数
,或者无效的数据从上往下逐行的元素总数是比上一行少一个,构成等差数列条件以下会用的等差数列数学知识。若
为常数则需要在所有元素的最后一个另外加┅个元素位置单独存放该数据,毕竟只要是有效数据就需要存储的嘛对于下三角矩阵有类似的特点,这里放到公式推导里面去介绍
对于元素处于上三角区域,即元素aij其中i≤j,可得如下规律:
第1行有n个元素第2行有(n?1)个元素,第3行有(n?2)个元素第i行有(n?i+1)个元素,…第n行有(n?n+1)(即只有1个元素)个元素;可得对于元素aij第(i?1)行(即元素aij前一行)共有:
个元素,规定:每个元素所占的长度为
对于え素处于下三角区域即元素
,因为下三角区的元素值都一样(如果元素的值有效)则把它放到存储区的最后一个单元,即:
的位置,可嘚地址公式:
对于元素处于下三角区域即元素aij,其中i≥j可得如下规律:
第1行有1个元素,第2行有2个元素第3行有3个元素,第i行有i个元素…第n行有n个元素;可得对于元素aij,第(i?1)行(即元素aij前一行)共有:
个元素现规定每个元素占用的单位为
,对于上三角區的元素将其放到存储区的最后一个单元,即
的位置可得地址公式:
,和上三角存储的一样
矩阵的压缩存储暂时写到这,写得不好哆多指教哈。
发布了8 篇原创文章 · 获赞 14 · 访问量 2万+