一、哈希表
1.1 哈希表的概念
散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。
例如:字典
1.2 哈希函数的构建
1> 直接定址法:取关键字或关键字的某个线性函数值为哈希地址的方法
2>数字分析法:通过分析取关键字的若干数位组成哈希地址的方法
3>平方取中法:取关键字平方后的中间几位数组成哈希地址的方法
4>除留余数法:取关键字被某个不大于哈希表表长m的数p除后所得余数为哈希地址的方法
H(key)=key MOD p (p
m: 元素的个数除以3/4
p一般取不大于表长m的最大质数
1.3 哈希冲突
1.哈希冲突:不同的关键码值通过哈希函数映射在同一片内存
2.线性探测法:di=1,2,3,…,m-1,即从冲突地址向后依次查找空闲地址的处理冲突方法
3.二次探测法:di=12,- 12 ,22,-22,32,…,±k2ÿ