我已经阅读过像bloom过滤器和跳过列表这样的数据结构.
概率数据结构的共同特征是什么?它们用于什么?
我正在努力理解布隆过滤器的用处.我得到了它的基础逻辑,空间压缩,快速查找,误报等.我只是不能将这个概念置于现实生活中,因为它是有益的.一个常见的应用是在Web缓存中使用bloom过滤器.我们使用bloom过滤器来确定给定的URL是否在缓存中.为什么我们不直接访问缓存来确定?如果我们得到肯定的话,我们仍然需要去缓存来检索网页(可能不存在),但是如果没有,我们可以使用缓存得到相同的答案(这可能是为了快速查找而优化的)无论如何?).
我需要在C#中存储4000字符串的固定大小(8-char),但我不知道在添加和检索项目的空间和时间方面最好用什么:Bloom过滤器,哈希表或字典?如果有人可以帮助我
我理解是什么使得bloom过滤器成为一种极具吸引力 然而,我发现很难真正理解你什么时候可以使用它们,因为你仍然必须执行昂贵的操作,你试图避免确定你没有发现误报.因为这不是他们通常只会增加很多开销吗?例如,针对布隆过滤器的维基百科文章表明它们可用于数据同步.我看到第一次布隆过滤器是空的但是说你没有改变任何东西然后再次同步你的数据时会有多好.现在,每次查找布隆过滤器都会报告文件已被复制,但是我们仍然不得不预先形成我们试图避免的较慢查找任务,以确保它是正确的吗?
我正在学习Bloom filter和BitMap(也称为Bit Array)并遇到一个问题,有人能给我一些关于何时使用布隆过滤器以及何时使用 BitMap 的说明吗?
在我的理解中我认为当我们需要找到最大的数字或者想要对庞大的数据进行排序时,BitMap 更适合(对于纯数字)。
如果我们想检查一些IP地址是否包含在数十亿条现有记录中,那么布隆过滤器更适合(用于字符串或其他非纯数字)。
但是,我想有人给我更详细的说明或建议,我在谷歌上搜索过,没有找到一些有用的信息。提前致谢!
另外我不知道我是否应该将这个问题放在stackoverflow或其他站点上,如果它不是正确的站点,希望有人指出,谢谢!