您的位置:首页 > 其它

哈希冲突的解决方法

2016-07-30 11:19 197 查看
1.拉链法------即数组加链表的数据结构解决地址冲突,Java中HashTable和HashMap用的就是用的这种冲突解决方法

2.开地址法(不建立链表)------按照给定探测序列,依次查找key能插入的位置。根据生成的探测序列的不同,可以有:线性探测法、和二次探测法。

线性探查法的序列记为:

h(i)=(h(key)+i) mod M 
容易造成元素连成一片,从而使得探查次数增加,影响搜索效率

二次探查法,采用下列循环探测序列:

h(2i-1)=(h(key)+i^2) mod M

h(2i)=(h(key)-i^2) mod M    二次探查能消除基本聚集,但是探查序列是基位置的序列,会有二级聚集问题
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: