散列技术是在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使得每个关键字key对应一个存储位置f(key)
这里我们把这种对应关系f称为散列函数,又称为哈希函数。按照这个思想,采用散列技术将记录存储在一块连续的存储空间中,这块连续存储空间称为散列表或哈希表
散列函数的构造方法
- 直接定址法
- 数字分析法
- 平方取中法
- 折叠法
- 除留余数法
- 随机数法
总之,现实中,应该视不同的情况采用不同的散列函数。
* 计算散列地址所需要的时间
* 关键字的长度
* 散列表的大小
* 关键字的分布情况
* 记录查找的频率。综合这些因素,才能决策选择哪种散列函数更合适
处理散列冲突的方法
- 开放定址法
- 再散列函数法
- 链地址法
- 公共溢出区法