一.数字关键词
关键词存储应该尽可能的离散
直接定址法:利用线性函数,例如上面的例子,h(key)=key-1990,key=1990,这个就被存放在0的位置
数字分析法:关键字可能有很到位组成,每一位变化可能都不一样,有的位是不变的,就是说不同的对象这一位都是一样的,有的某些位是随机变化的,分析出对象的关键在每一位上的表现,主要操作随机变化的地址,达成分配均匀的目的
例如上面的例子在一个地区的手机号的前7位基本上是差不多的,主要考虑后4位
3225506412905764,如果只取最后一位,就回造成很多的冲突
这两种的方法的目的希望结果能被更多的位数所影响
二.字符关键词
第一中方法:进行取余操作 a+3=100,b+2=100,c+1=100,造成了严重的冲突
第二种方法出来前三个字符,冲突有所改善但是依然有冲突
第三种方法,把所有涉及的关键字都进行位移法
快速计算方法:((((a*32+b)*32+c)*32+d)*32+e))