试想一个问题,一个数组长度10亿,查找某一个数字是否在其中,怎么计算?
首先常规的查找算法不能直接用了,这就需要用上我们的bitmap算法了。
什么是bipmap算法呢?
假如在8位的电脑中(懒的打0 ,就不举例32位的电脑),数字1 ,在计算机的表示为00000001,数字5在计算机中为00000101 ,假如我有个数组为a= [0,1,5,7],现在我们需要开辟一个内存保存a ,但是在数据量巨大的情况,一台笔记本电脑根本没法实现,这个时候办法来了,我们用8位电脑00000000,分别表示是否含有7,6,5,4,3,2,1,0 这几个数字,如果有7 ,上述内存的数值就是10000000,那么对应a数组就为,10100011,这样1bit就可以存下一个数组
(同样在32位中可以这样做)。
具体如何用Python实现bitmap算法:
#coding=utf8
class Bitmap(object):