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