新闻详情

新闻详情

首页 / 资讯中心 / 详情

位图-布隆过滤1

发布时间:2026/11/15 6:44:44来源:尧图网络
位图-布隆过滤1
一无符号32位整数范围 0 ~4294967295 一共约42.9亿个可能数字刚好覆盖题目40亿。BitMap规则1个bit总数除以8字节除以1024kb再除以1024mb得出512兆运用位图只需要512mb内存即可存入压缩多倍二一个字节是八个比特位1 Byte 8 bit位图类似hash但是比hash利用率高原本40个字节现在只需要3个字节就能存这个数组1. 普通HashMap存数组 {1,3,7,4,12,16,19,13,22,18}HashMap 是存键值对key数字value标记存在。- 一个Integer对象本身开销很大对象头4字节int哪怕用基础类型的 HashMapInteger,Boolean- 还要哈希表的数组容量、链表/红黑树指针会有大量空间浪费还有哈希冲突 这里10个数字要几十甚至上百字节。普通int数组每个int4字节10个就是 10 ×4 40字节就是你刚才说的。2. BitMap位图不存数字本身bit的位置下标 数字bit的值只用0/1标记有没有。例子里最大数字是22只需要23个bit向上对齐到字节只要3字节24bit。空间直接压缩十几倍。✅ 但是BitMap不是万能的有硬性限制考试常考点BitMap适合数字范围不大、是整数- 如果数字很大比如数字是 1000000 那你得开辟100万bit的空间直接爆内存这时位图就废了得换回hash。- 如果数字是负数、字符串位图直接不能用。3. 和Hash的核心差异一句话- Hash存数据本身计算hash值找到桶能存很大的数但有额外空间开销、哈希冲突。- BitMap下标就是数据只用1bit标记存在与否极致省内存但依赖数字的范围不能太大三位图底层 byte[] 字节数组底层就是字节数组 byte[]每个 byte 1字节 8bit可以标记8个数字。拿图里例子数字 12公式1. 数组下标 index 数字 / 8 整数除法​2. byte内的bit位置 bitPos 数字 % 8 取模1啥意思 叫做 左移运算符1 n 把数字 1 的二进制整体向左移动 n 位右边空出来的位置补01 的二进制1个字节来看 00000001举例1. 1 0 左移0位 → 00000001 十进制1​2. 1 1 左移1位 → 00000010 十进制2​3. 1 2 左移2位 → 00000100 十进制4​4. 1 4 左移4位 → 00010000 十进制16规律1 n 等价于 2^n- 13 2^3 8​- 15 2^5 32在位图里是干嘛的1 bitIndex 专门用来制造掩码生成一个二进制数只有第 bitIndex 位是1剩下全部是0比如 bitIndex2 12 → 00000100只有第2位是1其他都是0。然后配合- | 按位或把这一位设置成1set添加数字​- 按位与检查这一位是不是1get查询​- ~(1n) 取反之后 把这一位清成0remove删除int arrayIndex val / 8 ;四//扩容if(arrayIndex elem.length-1) {elem Arrays.copyOf(elem,arrayIndex1);}变量含义val 你要存的数字位图的第val位​- arrayIndex 这个位落在byte数组的第几个元素 val / 8 每1个byte存8bit​- elem 底层byte数组 elem.length 当前一共有多少个字节elem.length -1 数组最大合法下标数组下标从0开始五问题为什么普通内存放不下16G原始数组1、先算原始数据占用题目40亿个无符号整数一个int占4字节40亿 × 4 160亿字节 ≈{16GB}现在普通电脑/服务器内存情况- 个人电脑常见内存8G、16G、32G​- 就算机器物理内存是16G操作系统本身就要占一部分内存JVM虚拟机也要占用内存。 你没法把完整16GB的数据全部一次性加载进内存。比如你电脑物理内存一共16G系统开机就吃掉3~5G留给Java程序的堆内存可能就只有8G左右。直接加载16G的int数组直接OOM内存溢出。2、对比Bitmap方案用位图BitMap只需要 512MB很小轻轻松松放进内存。原理1bit标记一个数字是否存在不再存储数字本身。10亿个字节为什么是1g核心换算小技巧10亿个字节大概是0.9G可看做是1G10亿个比特位大概是119兆看做128兆
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/11/15 4:54:16

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/11/15 2:04:12

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/11/14 10:11:15

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/11/14 17:14:38

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/11/14 16:35:50

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/11/15 4:06:36

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉