位图bitmap算法(java)

位图排序是一种节省空间的排序方法,尤其适用于数据范围有限且无负数的情况。通过创建一个数组,用1或0表示数据是否存在,然后遍历原数组更新位图。排序时,遍历位图输出大于0的值即可。此外,位图法还常用于在有限选项中节约存储空间,例如在多选题中用二进制表示用户选择。对于特定问题,如排序1千万唯一7位整数,位图算法是最优解,因为它只需1000万位即可表示所有数据,且能快速生成有序序列。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简单的说就是用数组存放若有数据就标志为1true,若不存在标志为0false。比如1225,这里最大值为505中不存034,所以:

Array[0]=0Array[1]=1Array[2]=2Array[3]=0Array[4]=0Array[5]=1

上面数中由于2有两个,所以用int存数组的值,不用boolean型,这样如果有多个同样的数字可以用值表示个数。如上面Array[2]=2,就表示22个。

 

这样排序就方便多了,比如上面开始是{2,5,2,1}这样一无序数组A。找出最大值:5.

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值