我正在尝试创建一个数据结构,用于支持以下操作的固定大小集合:
- 查询元素是否在集合中(假阳性可以接受,假阴性不行)
- 将集合中的一个元素替换为另一个元素
- Bloom过滤器:这是标准解决方案。但是,删除元素很困难,因此难以实现操作2。
- 计数Bloom过滤器:与标准Bloom过滤器相比,空间要求变得更高(约为3-4倍),而假阳性率没有降低。
- 仅存储所有元素哈希列表:与计数布隆过滤器相比,给出了更好的假阳性率,但查找代价昂贵(在最坏情况下,将查找所有位)。
- 使用完美哈希的先前想法来确定位置:我没有快速完美哈希小元素集的想法。
- 元素是64位数字。
O(n)
,以保持数组排序。[否则你可以在O(n)
内进行排序] - amit