编辑评论:
以下方法对大量数据的处理方法进行了一般性总结。 当然,这些方法可能并不完全涵盖所有问题
但是,一些这样的方法可以处理大多数问题。
以下方法概括了大量数据的处理方法。 当然,这些方法可能无法完全涵盖
所有的问题,但这样的方法也能处理大多数问题。 接下来的几个问题基本上是直接
公司面试笔试的主题,方法不一定最合适。 如果你有更好的处理方法,欢迎和我讨论。
1.bloom过滤器
适用范围:可用于实现数据词典、进行数据判定、集体求交集
基本原理和要点:
原理上很简单,比特排列
K
个人独立
混沌
请参阅。 将
混沌
与函数对应的值的位数组的位置
1
、检索时
结果发现了一切
混沌
所有函数对应位
1
很明显,这个过程并不能保证搜索的结果
百分之百
正确。 一样的
也不支持删除插入到中的关键字。 因为与关键字对应的位会影响其他关键字。 所以很简单
是改善
计数蓝牙过滤器
现在用一个
柜台
可以使用数组而不是位数组来支持删除。
还有一个重要问题
根据输入要素的数量
n
,
位数组的确定
米
的大小和
混沌
函数的数量。
时光流逝
混沌
函数的数量
k=(ln2 ) * (m/n ) ) ) ) ) ) )。
错误率最小。 错误率为以下
e
的情况下,
米
至少必须相等
n*LG(1/e ) )。
才能表
表示任意
n
个要素的集合。 但是
米
应该更大。 因为我必须保证
位元
至少一半的序列
0
如果是
米
接受
这个家伙
=NLG(1/e ) LGE
大概是这样
NLG(1/e ) 1.44
加倍
(lg
表示
2
底部对数
)。
举个例子,错误率是
0.01
此时为
米
大概是这样吧
n
的
13
加倍。 就这样
K
大概是这样
8
个。
注意这里
米
与
n
的单位不同,
米
是
位元
为了单位
n
以元素个数为单位
(
准确地说是不同的元素
个数
)。 通常,单个元素的长度有很多
位元
请参阅。 所以我要用
蓝宝石过滤器
通常会节约内存。
扩展:
蓝宝石过滤器
将集合中的元素映射到位数组
K
(
K
散列函数的数量(个映射位是否完整
1
表示元