bitmap与2-bitmap使用总结

bitmap是一种简单的数据结构,但在存储空间压缩方面却使用广泛。

bitmap就是用一个bit位来标记某个元素是否存在:1表示存在,0表示不存在;而2-bitmap就是用两个bit为来标记某个元素出现的次数:00出现0次,01出现1次,10出现2次及其以上,11无意义。

2-bitmap在内存中的表示如下:
          [0]                  [1]                [2]              ……    
|00 00 00 00|00 00 00 00|00 00 00 00|    ……
  3   2   1   0   7   6   5   4   11 10  9   8       ……


任何一个可采用数组作为辅助标记来解决的问题都可以用bitmap来解决,因为用数组的每一个元素作为标记的话,用bit同样可以作为标记。当数据量比较小时,有时候为了操作方便,可直接采用数组。但当数据量很大的时候,因为内存大小的原因或题目限定了可用内存大小,数组就再没法解决我们的问题, 而此时bitmap就显示出其空间压缩的威力了:如果用char型的数组,标记同样范围内的数bitmap最多可以节省8倍空间,2-bitmap可节省4倍空间。若采用int型的数组,bitmap和2-bitmap可以分别最多节省32倍、16倍的空间。


  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值