BitMap
- 对0-7内5元素(4,7,2,5,3)排序(没重复)
- 可用BitMap算法达到排序
- 要表示8个数,需8 byte
- 开辟(8byte)空间,将这些空间的所有的byte位都设为0
- 第一个元素是4,把第五个字节的值设置为1
- 再处理剩下的四个元素,最终如下
- 4.遍历一次bytes区域,
- 把值为1的byte的位置输出(2,3,4,5,7),
- BitMap算法
- 如何确定10进制的数到2进制的映射
MAP映射:
- 设需要排序或则查找的数的总数N=100000000,
- BitMap中1bit代表一个数字,
- 那么N个数需要N/32 int空间。
- 需申请内存空间的大小int a[1 + N/32],
- a[0]在内存中占32为可以对应十进制数0-31,依次类推
a[0]-----------------------------> 0-31
a[1]------------------------------> 32-63
a[2]-------------------------------> 64-95
a[3]--------------------------------> 96-127
…