类似位图的数据结构BitsSet

      此数据结构最主要用途是对整数进行计数,通过将集合中每个元素指定为1,2或4个bit,以降低空间复杂率。实际使用的是int数组,通过位操作实现将1个int划分为多个包含1,2或4个bit的元素。当元素包含1个bit时退化为位图。

 

      类似于Map,对整数进行计数。将1个int划分成32/(2^n)个包含 2^n 个bit的元素,从而实现对BitsMap的下标进行[0,2^(n+1) )的计数。

例如,n=0,则1个int包含32个元素,每个元素包含1个bit。BitsMap中对应每个元素的值为[0,2)。这就是位相量,即位图。

         n=1,则1个int包含16个元素,每个元素包含2个bit。BitsMap中对应元素的值为[0,4)。

         n=2,则1个int包含8个元素,每个元素包含4个bit。BitsMap中对应元素的值为[0,16)。

具体使用环境:作为集合对整数计数。例如,

         1)文件中存有N个整数,N<10^5,每个整数至多出现1次,找到没有出现的整数

 2)文件中存有N个整数,N<10^5,每个整数至多出现10次,找到出现的次数最多整数,或者按照出现次数排序

 

   3)文件中存有N个整数,N<10^20,每个整数至多出现1次,对这些整数排序

      可以通过构造方法实例化对象,推荐使用静态工厂方法获取对象

 

 

      具体类的代码

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值