解决哈希冲突的方法
开放定址法
开放地址法(除了随机探测)都至少需要探测(1+n)*n / 2 次
m 为表长度
增量di有如下取法:
- 线性探测再散列 di = 1 , 2 , 3 , … , m-1
- 二次探测再散列 di = 1 , -1 , 2, -2 , 3 , -3 , … , k , -k(取相应数的平方)
- 随机探测再散列 di 是一组伪随机数列
链地址法
HashMap就是这么实现的
再哈希法、建立公共溢出区
建立一个公共溢出区域,就是把冲突的都放在另一个地方,不在表里面。
总结四种方法
- 开放定址法(线性探测法、二次探测法、随机探测法)
- 链地址法
- 再哈希法
- 简历公共溢出区
摘自:
https://blog.csdn.net/yeiweilan/article/details/73412438