稀疏数组笔记

一,稀疏数组
1.定义

稀疏数组可以看做是普通数组的压缩,但是这里说的普通数组是值无效数据量远大于有效数据量的数组

      0 0 0 0 0 0 0 0 0 0 0
      0 0 1 0 0 0 0 0 0 0 0
      0 0 0 0 2 0 0 0 0 0 0
      0 0 0 0 0 0 0 0 0 0 0
      0 0 0 0 0 0 0 0 0 0 0
      0 0 0 0 0 0 0 0 0 0 0
      0 0 0 0 0 0 0 0 0 0 0
      0 0 0 0 0 0 0 0 0 0 0
      0 0 0 0 0 0 0 0 0 0 0
      0 0 0 0 0 0 0 0 0 0 0
      0 0 0 0 0 0 0 0 0 0 0

其稀疏数组形式:

  11 11 2
  1  2  1
  2  4  2

2.存储

刚说到稀疏数组是一种压缩后的数组,为什么要进行压缩存储呢?

原数组中存在大量的无效数据,占据了大量的存储空间,真正有用的数据却少之又少
压缩存储可以节省存储空间以避免资源的不必要的浪费,在数据序列化到磁盘时,压缩存储可以提高IO效率

3.存储方式
1.普通存储

第一行存储原始数据总行数,总列数,总的非0数据个数 接下来每一行都存储非0数所在行,所在列,和具体值

rows cols n
r1   c1   val1
r2   c2   val2
.    .     .
.    .     .
rn   cn   valn

eg :

  11 11 2
  1  2  1
  2  4  2

2.链式存储

0 0 0 0 
0 1 0 0
0 0 2 0
0 0 3 0

后续会继续更新

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值