稀疏线性系统求解算法 之 存储结构(MCRF) 强于二维数组、三元组、行压缩、修正行压缩等

本文介绍了针对稀疏线性系统存储的MCRF(修正的行压缩)结构,对比了二维数组、三元组、行压缩等传统方式。MCRF使用两个数组高效存储非零元素信息,提高了空间利用率,同时保持了数据操作的简洁性。然而,元素定位和数据操作相对较复杂。
摘要由CSDN通过智能技术生成

针对稀疏线性系统的特点——0元素比较多,其存储结构主要有四种形式:二维数组、三元组(Triplet Format)、行压缩(Compressed Row Format[1]、修正的行压缩(Modified Compressed Row Format[1]

前三种存储结构都有各自的优势。用二维数组存储稀疏线性系统能实现随机访问,操作效率比较高,但是,空间利用率很低,特别是当稀疏线性系统的密度较小时,尤为如此。用三元组的存储形式,只保存矩阵的非零元素,可以提高空间的利用率,但是无法随机访问矩阵元素,并且基于此结构的各项操作都复杂了很多,元素定位比较复杂。而行压缩的存储结构是对三元组形式的一种改进,它比三元组结构更加节省空间,但是操作数据更加复杂。修正的行压缩(MCRF)又是对行压缩的一种改进,它比行压缩结构节省空间,而没有增加数据操作的复杂度。

1   MCRF介绍

MCRF存储结构采用两个数组,只保存稀疏线性系统的非零元素信息,同时也记录每行非零元素的个数以及每行第一个非零非对角元素的位置信息。下面针对如下的矩阵,详细介绍MCRF存储结构。

 

 

稀疏线性系统

 

修正的行压缩(MCRF)存储结构只存储矩阵非零元素的值、非零非对角元素的列标、每行第一个非零非对角元素的序号。

该方法开设两个长度为总的非零元素个数(total_elem)加1的一维数组value[]index[]。其中value[][0, total_ln)total_ln为总行数)位置存放对角元素的值,第total_ln位置可以空置,后续位置按行优先的顺序存放非零非对角元素的值。Index[][0, total_ln]个位置存放每行第一个非零非对角元素的序号。Index后续的空间存放value[]对应元素的列标。

下表为数据(1)所示矩阵的存储结构:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值