博客
关于我
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 简易聊天室
查看>>
Node.js 线程你理解的可能是错的
查看>>
Node.js 调用微信公众号 API 添加自定义菜单报错的解决方法
查看>>
node.js 配置首页打开页面
查看>>
node.js+react写的一个登录注册 demo测试
查看>>
Node.js中环境变量process.env详解
查看>>
Node.js之async_hooks
查看>>
Node.js初体验
查看>>
Node.js升级工具n
查看>>
Node.js卸载超详细步骤(附图文讲解)
查看>>
Node.js卸载超详细步骤(附图文讲解)
查看>>
Node.js基于Express框架搭建一个简单的注册登录Web功能
查看>>
node.js学习之npm 入门 —8.《怎样创建,发布,升级你的npm,node模块》
查看>>
Node.js安装与配置指南:轻松启航您的JavaScript服务器之旅
查看>>
Node.js安装及环境配置之Windows篇
查看>>
Node.js安装和入门 - 2行代码让你能够启动一个Server
查看>>
node.js安装方法
查看>>
Node.js官网无法正常访问时安装NodeJS的方法
查看>>
node.js模块、包
查看>>
node.js的express框架用法(一)
查看>>