哈希表:
- 定义:
- 散列技术是指在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使每一个关键字都对应一个存储位置。即:存储位置=f(关键字)。在查找的过程中,只需要通过这个对应关系f 找到给定值key的映射f(key)。只要集合中存在关键字和key相等的记录,则必在存储位置f(key)处。我们把这种对应关系f 称为散列函数或哈希函数
- 采用散列技术将记录存储在一块连续的存储空间中,这块连续的存储空间称为哈希表。所得的存储地址称为哈希地址或散列地址
哈希函数构造方法:
-
原则:
- 计算简单
- 分布均匀
-
构造方法:
- 直接定址法:
- 取关键字或关键字的某个「线性函数值」为哈希地址
- 优点:简单,均匀,不会产生冲突
- 缺点:需要实现直到关键字的分布情况
- 适用性:适合查找表比较小且连续的情况
- 数字分析法:
- 数字分析法用于处理关键字是位数比较多的数字,通过抽取关键字的一部分进行操作,计算哈希存储位置的方法
- 适用性:适合处理关键字位数比较大的情况,事先知道关键字的分布且关键字的若干位分布均匀
- 平方取中法:
- 先对关键字取平方,然后选取中间几位为哈希地址,取的位数由表
- 直接定址法: