开放地址法 Hsah碰撞是什么?如何解决?
Hash碰撞:
hash碰撞指的是,两个不同的对象经过hash计算后,得到的hash值相同,导致冲突。
解决方案
hash碰撞的解决方式是开放寻址法和拉链法。
1. 开放寻址法
2,拉链法:
拉链法的基本思路是在每个哈希槽中存储一个链表。当发生哈希冲突时,新的元素将被添加到对应槽位的链表中。这样,即使多个元素的哈希值相同,它们也可以通过链表的形式存储在同一槽位下,从而避免覆盖原有的元素。
3,再哈希法:
当发生冲突时,使用第二个、第三个、哈希函数计算地址,直到无冲突时。缺点:计算时间增加。
4.公共溢出区:
将哈希表分为基本表和溢出表两部分,凡是和基本表发生冲突的元素,一律填入溢出表。建立一个公共溢出区域,就是把冲突的都放在另一个地方,不在表里面。