博客
关于我
BitMap的巧用(简单示例)Python
阅读量:371 次
发布时间:2019-03-05

本文共 946 字,大约阅读时间需要 3 分钟。

最近一周都没怎么更新博文,实际上也没有做什么有用的事情,感觉这样下去把自己刚刚开的头又半途而废了。唉!不能让自己生活在舒适圈啊,要努力学习,加油!

今天要说的是BitMap的使用,了解BitMap的人都知道BitMap可以在短时间内对海量数据去重,排序和查询,用处还是很大的。

一、BitMap简介

BItMap算法在中文里叫做位图算法,它是指内存中连续的二进制(bit)所组成的数据结构,该算法主要用于对大量整数做去重和查询操作。 BitMap的位运算是其另一个优势,拥有非常高的性能。 在使用BitMap时,我们需要先对自己存储的数据做一个估计,看看大约要申请多少位。

二、BitMap代码实现

class MyBitmap:    def __init__(self,size):        self.words=[0]*(self.get_word_index(size-1)+1) #因为get_word_index()函数返回结果是向下取整,所以需要 + 1        self.size=size    def get_bit(self,bit_index):        if bit_index<0 or bit_index>self.size-1:            raise Exception("超过Bitmap的有效范围!")        word_index=self.get_word_index(bit_index)        return (self.words[word_index]&(1<
self.size-1: raise Exception("超过Bitmap的有效范围!") word_index=self.get_word_index(bit_index) self.words[word_index] |= (1<
>6bitMap=MyBitmap(128)bitMap.set_bit(126)bitMap.set_bit(75)print(bitMap.get_bit(126))print(bitMap.get_bit(78))

转载地址:http://udvg.baihongyu.com/

你可能感兴趣的文章
Nginx配置负载均衡到后台网关集群
查看>>
Nginx配置限流,技能拉满!
查看>>
Nginx面试三连问:Nginx如何工作?负载均衡策略有哪些?如何限流?
查看>>
Nginx:NginxConfig可视化配置工具安装
查看>>
ngModelController
查看>>
ngrok | 内网穿透,支持 HTTPS、国内访问、静态域名
查看>>
NHibernate学习[1]
查看>>
NHibernate异常:No persister for的解决办法
查看>>
NIFI1.21.0_Mysql到Mysql增量CDC同步中_日期类型_以及null数据同步处理补充---大数据之Nifi工作笔记0057
查看>>
NIFI1.21.0_Mysql到Mysql增量CDC同步中_补充_更新时如果目标表中不存在记录就改为插入数据_Postgresql_Hbase也适用---大数据之Nifi工作笔记0059
查看>>
NIFI1.21.0_NIFI和hadoop蹦了_200G集群磁盘又满了_Jps看不到进程了_Unable to write in /tmp. Aborting----大数据之Nifi工作笔记0052
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增删改数据分发及删除数据实时同步_通过分页解决变更记录过大问题_02----大数据之Nifi工作笔记0054
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表或全表增量同步_实现指定整库同步_或指定数据表同步配置_04---大数据之Nifi工作笔记0056
查看>>
NIFI1.23.2_最新版_性能优化通用_技巧积累_使用NIFI表达式过滤表_随时更新---大数据之Nifi工作笔记0063
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_根据binlog实现数据实时delete同步_实际操作04---大数据之Nifi工作笔记0043
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置binlog_使用处理器抓取binlog数据_实际操作01---大数据之Nifi工作笔记0040
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_实现数据插入数据到目标数据库_实际操作03---大数据之Nifi工作笔记0042
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_生成插入Sql语句_实际操作02---大数据之Nifi工作笔记0041
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_03_来吧用NIFI实现_数据分页获取功能---大数据之Nifi工作笔记0038
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_无分页功能_02_转换数据_分割数据_提取JSON数据_替换拼接SQL_添加分页---大数据之Nifi工作笔记0037
查看>>