Python如何实现一个位图索引

代码如下:

class Bitmap(object):def __init__(self, max):self.size  = self.calcElemIndex(max, True)self.array = [0 for i in range(self.size)]def calcElemIndex(self, num, up=False):'''up为True则为向上取整, 否则为向下取整'''if up:return int((num + 31 ) / 31) #向上取整return num / 31def calcBitIndex(self, num):return num % 31def set(self, num):elemIndex = int(self.calcElemIndex(num))byteIndex = self.calcBitIndex(num)elem      = self.array[elemIndex]self.array[elemIndex] = elem | (1 << byteIndex)def clean(self, i):elemIndex = int(self.calcElemIndex(i))byteIndex = self.calcBitIndex(i)elem      = self.array[elemIndex]self.array[elemIndex] = elem & (~(1 << byteIndex))def test(self, i):elemIndex =int(self.calcElemIndex(i))byteIndex = self.calcBitIndex(i)if self.array[elemIndex] & (1 << byteIndex):return Truereturn FalseMAX = 879suffle_array = [45, 2, 78, 35, 67, 90, 879, 0, 340, 123, 46]result       = []bitmap = Bitmap(MAX)for num in suffle_array:bitmap.set(num)for i in range(MAX + 1):if bitmap.test(i):result.append(i)print ('原始数组为:    %s' % suffle_array)print ('排序后的数组为: %s' % result)

登录后复制

以上就是Python如何实现一个位图索引的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2235335.html

(0)
上一篇 2025年2月26日 17:59:43
下一篇 2025年2月26日 09:12:21

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Python Casting怎么使用

    指定变量类型 有时您可能需要为变量指定类型,这可以通过 casting 来完成,python 是一门面向对象的语言,因此它使用类来定义数据类型,包括其原始类型。 因此,使用构造函数完成在 python 中的转换: int() –…

    2025年2月26日
    200
  • 怎么用python代码实现图片去摩尔纹

    1、前言 当感光元件像素的空间频率与影像中条纹的空间频率接近时,可能产生一种新的波浪形的干扰图案,即所谓的摩尔纹。传感器的网格状纹理构成了一个这样的图案。若图案中的细条状结构与传感器的结构呈小角度交叉,则会在图像中产生明显的干扰效应。这种现…

    2025年2月26日
    200
  • Python Excel数据处理之xlrd/xlwt/xlutils模块怎么使用

    常规的excel数据处理中,就是对excel数据文件的读/写/文件对象操作。 通过对应的python非标准库xlrd/xlwt/xlutils,来实现具体的数据处理业务逻辑。 在复杂的Excel业务数据处理中,三兄弟扮演的角色缺一不可。今天…

    2025年2月26日
    200
  • Python怎么使用ClickHouse

    clickhouse是近年来备受关注的开源列式数据库(dbms),主要用于数据联机分析(olap)领域,于2016年开源。目前国内社区火热,各个大厂纷纷跟进大规模使用。 今日头条,内部用ClickHouse来做用户行为分析,内部一共几千个C…

    2025年2月26日 编程技术
    200
  • Python递归下降Parser怎么实现

    1. 算术运算表达式求值 要解析这类文本,需要另外一种特定的语法规则。我们这里介绍可以表示上下文无关文法(context free grammer)的语法规则巴科斯范式(bnf)和扩展巴科斯范式(ebnf)。从小到一个算术运算表达式,到大到…

    2025年2月26日
    200
  • python查找与排序算法实例代码分析

    查找 二分查找 二分搜索是一种在有序数组中查找某一特定元素的搜索算法。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一…

    2025年2月26日 编程技术
    200
  • Python自动化测试利器selenium怎么使用

    1 自动化测试 自动化测试指软件测试的自动化,在预设状态下运行应用程序或者系统,预设条件包括正常和异常,最后评估运行结果。将人为驱动的测试行为转化为机器执行的过程。 自动化测试包括UI自动化,接口自动化,单元测试自动化。按照这个金字塔模型来…

    2025年2月26日
    200
  • 怎么使用Python开发自定义Web框架

    开发自定义Web框架 接收web服务器的动态资源请求,给web服务器提供处理动态资源请求的服务。根据请求资源路径的后缀名进行判断: 如果请求资源路径的后缀名是.html则是动态资源请求, 让web框架程序进行处理。 否则是静态资源请求,让w…

    2025年2月26日 编程技术
    200
  • Python sklearn怎么对文本数据进行特征化提取

    文本特征提取 作用:对文本数据进行特征化 (句子、短语、单词、字母)一般选用单词作为特征值 方法一:CountVectorizer sklearn.feature_extraction.text.CountVectorizer(stop_w…

    编程技术 2025年2月26日
    200
  • 如何使用python+Flask实现日志在web网页实时更新显示

    一、日志输出到文件 使用模块:logging 可以生成自定义等级日志,可以输出日志到指定路径日志等级:debug(调试日志) 1、封装日志输出方法() import logging as lgimport osclass logging_(…

    2025年2月26日 编程技术
    200

发表回复

登录后才能评论