加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

矩阵 稀疏矩阵 压缩存储 3种方案

发布时间:2022-07-10 07:48:55 所属栏目:语言 来源:互联网
导读:数据结构中,提供针对某些特殊矩阵的压缩存储结构。 矩阵中有两条对角线,其中的对角线称为主对角线,另一条从左下角到右上角的对角线为副对角线。对称矩阵指的是各数据元素沿主对角线对称的矩阵。 结合数据结构压缩存储的思想,我们可以使用一维数组存储
  数据结构中,提供针对某些特殊矩阵的压缩存储结构。
 
  矩阵中有两条对角线,其中的对角线称为主对角线,另一条从左下角到右上角的对角线为副对角线。对称矩阵指的是各数据元素沿主对角线对称的矩阵。
 
  结合数据结构压缩存储的思想,我们可以使用一维数组存储对称矩阵。由于矩阵中沿对角线两侧的数据相等,因此数组中只需存储对角线一侧(包含对角线)的数据即可。
 
  注意,以上两个公式既是用来存储矩阵中元素的,也用来从数组中提取矩阵相应位置的元素。例如,如果想从图 3 中的数组提取矩阵中位于 (3,1) 处的元素,由于该元素位于下三角,需用下三角公式获取元素在数组中的位置,即:
 
  压缩存储稀疏矩阵的方法是:只存储矩阵中的非 0 元素,与前面的存储方法不同,稀疏矩阵非 0 元素的存储需同时存储该元素所在矩阵中的行标和列标。
 
  例如,存储图 5 中的稀疏矩阵,需存储以下信息:
  (1,1,1):数据元素为 1,在矩阵中的位置为 (1,1);
  (3,3,1):数据元素为 3,在矩阵中的位置为 (3,1);
  (5,2,3):数据元素为 5,在矩阵中的位置为 (2,3);
  除此之外,还要存储矩阵的行数 3 和列数 3;
 
  由此,可以成功存储一个稀疏矩阵。
  注意,以上 3 种特殊矩阵的压缩存储,除了将数据元素存储起来,还要存储矩阵的行数值和列数值,具体的实现方式后续会介绍 3 种,本节仅需了解矩阵压缩存储的原理。
 
  矩阵压缩存储的 3 种方式
  对于以上 3 种特殊的矩阵,对阵矩阵和上下三角矩阵的实现方法是相同的,且实现过程比较容易,仅需套用上面给出的公式即可。
 
  稀疏矩阵的压缩存储,数据结构提供有 3 种具体实现方式:
  三元组顺序表;
  行逻辑链接的顺序表;
  十字链表;
 
  稀疏矩阵的三种存储结构,会利用后续的 3 篇文章做重点介绍。

(编辑:应用网_丽江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读