当前位置: 首页 > news >正文

布隆过滤器

         思考一个问题:如果我想判断一个元素是否存在某个集合里面怎么做?

        一般的解决方案是先把所有元素保存起来,然后通过循环比较来确定。 但是如果我们有几千万甚至上亿的数据的时候},虽然可以通过不同的数据结构来优化数据检索的时间复杂度,但是整体的效率依然很慢, 而且会占用非常多的内存空间,这个问题该怎么解决呢?

         这个时候,位图就派上了用场。

        BitMap 的基本原理就是用一个 bit 位来存储当前数据是否存在的状态值,也就是把一个数据通过 hash 运算取模后落在 bit 位组成的数组中,通过 1 对该位置进行标记。 这种方式适用于大规模数据,但数据状态又不是很多的情况,通常是用来判断某个数据存不存在的。

 

         布隆过滤器就是在位图的基础上做的一个优化设计。 它的原理是,当一个元素被加入集合时,通过 K 个散列函数将这个元素映射成一个位数组中的 K 个点,把它们置为 1。

        检索的时候,使用同样的方式去映射,只要看到每个映射的位置的值是不是 1,就可以大概知道该元素是否存在集合中了。 如果这些点有任何一个 0,则被检查的元素一定不在;如果都是 1,则被检查的元素很可能存在。

 

http://www.lryc.cn/news/134712.html

相关文章:

  • element-ui中二次封装一个带select的form组件
  • 07.利用Redis实现点赞排行榜功能
  • 【前端vue升级】vue2+js+elementUI升级为vue3+ts+elementUI plus
  • 多维时序 | MATLAB实现SCNGO-BiLSTM-Attention多变量时间序列预测
  • go-test
  • 假设你新换了电脑,如何不用U盘的情况下实现软件文件转移?
  • 聊聊 Docker
  • 运行软件mfc140u.dll丢失怎么办?mfc140u.dll的三个修复方法
  • 神经网络基础-神经网络补充概念-54-softmax回归
  • 米尔瑞萨RZ/G2L开发板-02 ffmpeg的使用和RTMP直播
  • 基于swing的在线考试系统java jsp线上试卷问答mysql源代码
  • C# 读取pcd点云文件数据
  • .NET CORE Api 上传excel解析并生成错误excel下载
  • 数据结构,二叉树,前中后序遍历
  • 项目实战笔记2:硬技能(上)
  • 神经网络基础-神经网络补充概念-59-padding
  • 【开源免费】ChatGPT-Java版SDK重磅更新收获2.3k,支持插件模式、实现ChatGpt联网操作。
  • 情报与GPT技术大幅降低鱼叉攻击成本
  • Swift 周报 第三十五期
  • uni-app + SpringBoot +stomp 支持websocket 打包app
  • LeetCode--HOT100题(35)
  • idea插件grep console最佳实践
  • Android 12 源码分析 —— 应用层 二(SystemUI大体组织和启动过程)
  • 【C#】通用类型转换
  • 传统DNS、负载均衡服务发现框架与专业服务发现框架(Eurek、nacos)分析
  • js中数组常用操作函数
  • Windows、Mac、Linux端口占用解决
  • 企业文件透明加密软件——「天锐绿盾」数据防泄密管理软件系统
  • Postman接口自动化测试实例
  • 软件团队降本增效-构建人员评价体系