Advertisement

稀疏矩阵压缩处理与存储(C语言版本)

阅读量:

背景需求

在分析一个典型的二维数组结构时

当遇到大量冗余的零值单元时

在实际应用场景下

计算机会因为对这些无意义的零值单元进行不必要的存储而产生沉重的数据负担

本文以五子棋比赛结果的数据存储为例

采用c语言编写程序完成原始稀疏矩阵转置压缩过程以及数据持久化操作

并从文件中恢复压缩格式的数据后进行解码还原回原始数据结构

这样的设计能够在有限的内存资源下高效管理大规模稀疏数据集

图解

在以下所示的具体布局中,请注意使用1来标记红色方块的位置、2来代表黑色方块的位置以及0则表示空位。

需求就是将上述棋局转换为如下矩阵

算法

棋局保存:1、统计有多少个有效元素count

2、定义长度为count+1,宽度为3的矩阵arr

3、逐一赋值,存入文件

棋局复盘:1、读取文件第一行,得到原始矩阵的行列数,定义原始矩阵

2、将文件中对应的非0值赋值给原始矩阵

全部评论 (0)

还没有任何评论哟~