Bitmap算法有哪些关键小结点?
- 内容介绍
- 相关推荐
本文共计1349个文字,预计阅读时间需要6分钟。
Bitmap实现用户画图的标签中,基本思想是使用一个bit位来标记每个像素的Value,而Key即是对应的像素位置。由于采用了bit作为存储单位,节省了存储空间;如何存储一个数字0,表示空或无,可以通过在Bit-map中对应位置设置0来实现。
Bitmap 实现 用户画像的标签
Bit-map的基本思想就是用一个bit位来标记某个元素对应的Value,而Key即是该元素。由于采用了Bit为单位来存储数据,因此节省存储空间;
如何存储一个数0表示不存在,1表示存在
例如:存储{1,2,5,6}这四个整型数
Bitmap 去掉重复的整数型
虽然HashSet和HashMap也能实现用户的查询和统计,但是如果使用HashSet或HashMap存储的话,每一个数据,比如用户ID都要存成int,占4字节 = 32bit;而一个用户ID在Bitmap中只占一个bit,内存节省了32倍。
优秀的并集和交集运算
交集∩运算:如何查找使用iOS系统和付费VIP的用户
并集∪运算:如何查找Windows系统或付费VIP的用户
这就是Bitmap算法的另一个优势:位运算的高性能。
缺点:无法做非运算例如:标签中有勇士球迷和湖人球迷
求非湖人球迷,去做非运算的话
只有2个是非湖人球迷,却有7个结果,这样是不行的。
本文共计1349个文字,预计阅读时间需要6分钟。
Bitmap实现用户画图的标签中,基本思想是使用一个bit位来标记每个像素的Value,而Key即是对应的像素位置。由于采用了bit作为存储单位,节省了存储空间;如何存储一个数字0,表示空或无,可以通过在Bit-map中对应位置设置0来实现。
Bitmap 实现 用户画像的标签
Bit-map的基本思想就是用一个bit位来标记某个元素对应的Value,而Key即是该元素。由于采用了Bit为单位来存储数据,因此节省存储空间;
如何存储一个数0表示不存在,1表示存在
例如:存储{1,2,5,6}这四个整型数
Bitmap 去掉重复的整数型
虽然HashSet和HashMap也能实现用户的查询和统计,但是如果使用HashSet或HashMap存储的话,每一个数据,比如用户ID都要存成int,占4字节 = 32bit;而一个用户ID在Bitmap中只占一个bit,内存节省了32倍。
优秀的并集和交集运算
交集∩运算:如何查找使用iOS系统和付费VIP的用户
并集∪运算:如何查找Windows系统或付费VIP的用户
这就是Bitmap算法的另一个优势:位运算的高性能。
缺点:无法做非运算例如:标签中有勇士球迷和湖人球迷
求非湖人球迷,去做非运算的话
只有2个是非湖人球迷,却有7个结果,这样是不行的。

