博客
关于我
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/

你可能感兴趣的文章
Node.js 8 中的 util.promisify的详解
查看>>
node.js debug在webstrom工具
查看>>
Node.js Event emitter 详解( 示例代码 )
查看>>
Node.js GET、POST 请求是怎样的?
查看>>
Node.js HTTP模块详解:创建服务器、响应请求与客户端请求
查看>>
Node.js RESTful API如何使用?
查看>>
node.js url模块
查看>>
Node.js Web 模块的各种用法和常见场景
查看>>
Node.js 之 log4js 完全讲解
查看>>
Node.js 函数是什么样的?
查看>>
Node.js 函数计算如何突破启动瓶颈,优化启动速度
查看>>
Node.js 切近实战(七) 之Excel在线(文件&文件组)
查看>>
node.js 初体验
查看>>
Node.js 历史
查看>>
Node.js 回调函数的原理、使用方法
查看>>
Node.js 在个推的微服务实践:基于容器的一站式命令行工具链
查看>>
Node.js 实现类似于.php,.jsp的服务器页面技术,自动路由
查看>>
Node.js 异步模式浅析
查看>>
node.js 怎么新建一个站点端口
查看>>
Node.js 文件系统的各种用法和常见场景
查看>>