hash表的定义
散列技术是在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使得每个关键字key 对应一个存储位置f (key),对应关系f 称为散列函数, 又称为哈希( Hash) 函数
采用散列技术将记录存储在一块连续的存储空间中,这块连续存储空间称为散列表或哈希表(hash table)
散列函数的构造方法
1.直接定址法
取关键字的某个线性函数值为散列地址
f ( key ) =a x key+b (a 、b 为常数)
2.数字分析法
使用关键字的一部分来计算散列存储位置的方法
3.平方取中法
平方后取中间的三位数,适合子不知道关键字的分布,而位数又不是很大的情况。
4.折叠法
将关键字从左到右分割成位数相等的几部分(注意最后一部分位数不够时可以短些) ,然后将这几部分叠加求和,并按散列表表长,取后几位作为散列地址。
折叠法事先不需要知道关键字的分布,适合关键字位数较多的情况
5.随机数法
选择一个随机数,取关键字的随机函数值为它的散列地址