您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

Python如何实现一个位图索引

2024/3/9 5:01:27发布22次查看
代码如下:
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 / 31 def calcbitindex(self, num): return num % 31 def 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 true return 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如何实现一个位图索引的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product