Blizzard Hash for Android 是一种降低内存消耗的哈希算法,理论上牺牲了碰撞率,但在处理千万量级以内的数据时,碰撞率和内存消耗都优于传统的 Bloom Filter。此算法中,每个节点包含两个重要属性:
1) nHashA:此属性提取 byte 的前 7 位(1~127),用于存储 HashString
返回值(long 类型)的低 7 位。这一值主要用于处理第一次碰撞的哈希值。
2) bExists:此属性取 byte 的最后 1 位,用于标记某哈希地址是否已被占用。
测试效果显示,在 2000 条数据的情况下,设置 table_length=pow(2,21)
(即 2097152),占用内存大小为 pow(2,21)*8
(16M),碰撞次数为 0。这些结果表明,该算法在特定条件下具有极高的内存效率和低碰撞率。
如果你对该算法感兴趣并想深入了解,可以查看完整的暴雪哈希算法源码【暴雪哈希算法全部源码】(暴雪哈希算法全部源码),或者查阅更多关于哈希表及其相关算法的详细资料【哈希表生成及哈希查找算法】(哈希表生成及哈希查找算法)。这些资源将帮助你更全面地理解哈希算法的内部机制和应用场景。
暂无评论