3.bit-map

适用范围:可进行数据的快速查找,判重,删除,一般来说数据范围是int的10倍以下 
基本原理及要点:使用bit数组来表示某些元素是否存在,比如8位电话号码 
扩展:bloom filter可以看做是对bit-map的扩展 
问题实例: 
1)已知某个文件内包含一些电话号码,每个号码为8位数字,统计不同号码的个数。 
8位最多99 999 999,大概需要99m个bit,大概10几m字节的内存即可。 
2)2.5亿个整数中找出不重复的整数的个数,内存空间不足以容纳这2.5亿个整数。 
将bit-map扩展一下,用2bit表示一个数即可,0表示未出现,1表示出现一次,2表示出现2次及以上。或者我们不用2bit来进行表示,我们用两个bit-map即可模拟实现这个2bit-map。 

posted @ 2013-09-17 16:13  liutoutou  阅读(160)  评论(0编辑  收藏  举报