文章目录
1.哈希表定义
- 哈希表是根据键值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。哈希表本质上是一个元素为链表的数组。
2.哈希表构造
2.1 直接定址法
- 定义:取关键字的某个线性函数作为哈希地址。
- 公式:
hash(key) = a * key + b;
a,b为常数。 - 局限性:要求哈希地址空间的大小与关键码集合的大小相同,给应用带来限制。
2.2 除留余数法
- 定义:取关键字被某个不大于哈希表表长m的数p除后所得余数作为哈希地址。
- 公式:
hash(key )= key % p;
。除数一般不大于m,最接近或者等于m的质数。 - 局限性:有时候有些散列地址实际上一开始是不可能用散列函数计算得到,只可能在处理冲突时达到这些地址。
2.3 数字分析法
- 定义: