所谓查找实际上就是要确定关键码等于给定值的记录在查找结构中的存储位置。理想情况是不经过任何比较,直接便能得到待查记录的存储记录,那就必须在记录的存储位置和它的关键码之间建立一个确定的对应关系H,使得每个关键码key和唯一的存储位置H(key)相对应。这种技术称为哈希技术。采用哈希技术将记录存储在一块连续的存储空间中,这块连续的存储空间称为哈希表,将关键码映射为哈希表中适当存储位置的函数称为哈希函数,所得的存储位置称为哈希地址。
常用的哈希函数:
1、直接定址法
直接定址法的哈希函数是关键码的线性函数,即: H(key)=a*key+b (a,b为常数)。
2、除留余数法
除留余数法的基本思想是:选择某个适当的正整数p,以关键码除以p的余数作为哈希地址,即H(key)=key mod p
3、数字分析法
数字分析法根据关键码在各个位上的分布情况,选取分布比较均匀的若干位组成哈希地址。
4、平方取中法
平方取中法是对关键码平方后,按散列表大小,取中间的若干位作为散列地址。
5、折叠法
折叠法是将关键码从左到右分割成