稀疏矩阵是指矩阵中元素大部分是0的矩阵,事实上,实际问题中大规模矩阵基本上是稀疏矩阵,很多稀疏度在90%甚至99%以上;因此我们需要有高效的稀疏矩阵存储格式。

本文参考了 https://www.cnblogs.com/xbinworld/p/4273506.html 此文章,对coo 和 csr 两种格式,进行摘录,进行备忘;

  • COO Coordinate (以坐标的形式进行表示) 

这是最简单的一种格式,每一个元素需要用一个三元组来表示,分别是(行号,列号,数值),对应上图右边的一列。这种方式简单,但是记录单信息多(行列),每个三元组自己可以定位,因此空间不是最优。

  • Compressed Sparse Row (CSR) (以行压缩的形式进行表示)

CSR是比较标准的一种,也需要三类数据来表达:数值,列号,以及行偏移。CSR不是三元组,而是整体的编码方式。数值和列号与COO一致,表示一个元素以及其列号,行偏移表示某一行的第一个元素在values里面的起始偏移位置。如上图中,第一行元素1是0偏移,第二行元素2是2偏移,第三行元素5是4偏移,第4行元素6是7偏移。在行偏移的最后补上矩阵总的元素个数,本例中是9。

  • Compressed Sparse Column (CSC) (以列压缩的形式进行表示)

CSC是和CSR相对应的一种方式,即按列压缩的意思。

以上图中矩阵为例:

Values:        [1 5 7 2 6 8 3 9 4]

Row Indices:[0 2 0 1 3 1 2 2 3]

Column Offsets:[0 2 5 7 9]

资源来源自网络,保持更新;更多内容请关注 cnblogs.com/xuyaowen;

最新文章

  1. 2016福州大学软件工程Beta阶段团队作业成绩汇总
  2. A Taxonomy of Computer Organizations
  3. 分布式事务操作之Spring+JTA
  4. MDF文件数据恢复
  5. 如何在网页中显示pdf
  6. [转]在.Net中使用Oracle的表类型和对象类型
  7. CF(441D Valera and Swaps)置换群
  8. poj 3026 Borg Maze bfs建图+最小生成树
  9. IntelliJ 15 unmapped spring configuration files found
  10. JS-如何把字符串转换成数组
  11. uoj#38. 【清华集训2014】奇数国【欧拉函数】
  12. Javaweb学习(一):tomcat服务器配置与启动
  13. Java日志框架那些事儿
  14. MyBatis入门简述
  15. cmake add_custom_command 使用
  16. Ex 2_34 线性3SAT..._第四次作业
  17. [转]C#操作INI文件
  18. ReentrantLock源码了解
  19. linux常用命令:find 命令参数详解
  20. 前端验证用户登陆状态(vue.js)

热门文章

  1. Docker5-docker私库的搭建及常用方法-harbor-registry方式
  2. MySQL日期和时间类型笔记
  3. mysql的函数笔记
  4. python编程基础之二十
  5. python编程基础之十七
  6. JZOJ10004 列车调度
  7. 全球首个开放应用模型 OAM 开源 | 云原生生态周报 Vol. 23
  8. C# Halcon联合编程问题(二)
  9. 微信小程序——获取formid
  10. 多种方式实现AOP