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 二次探查能消除基本聚集,但是探查序列是基位置的序列,会有二级聚集问题