哈希表
哈希函数构造方法
1、除留取余法
2、随机数法
处理哈希冲突的方法
1、开放定址法
H=(H(key)+di) MOD M
di的取法
1. di=1,2,3, …, m-1,线性探测再散列
2.di=12,-12,22,-22,32,-32,…±k2 (k ≤ m/2),二次探测再散列
3.di=伪随机数系列,伪随机探测再散列
2、再哈希
3、链地址法
比较的关键字个数取决于下列因素 ①哈希函数; ②处理冲突的方法; ③装填因子。
设同一组关键字,相同的哈希函数,不同的处理冲突的方法,则查找的平均比较次数不同,
线性探测再散列的平均比较次数:
ASL(12)= 1/12(16+2+33+4+9)=2.5
链地址法的平均比较次数:
ASL(12)= 1/12(16+24+3+4)=1.75;
如果处理冲突的方法相同,其平均查找长度依赖于哈希表的装填因子;
哈希表的装填因子定义为:
α越小,发生冲突的可能性小;反之,α越大,表中已添的记录增多;发生冲突的可能性大。