散列技术:就是在记录的存储位置和它的关键字之间建立一个对应关系f,使得每个关键字都能对应一个存储地址f(key)。
存储地址=f(key) key是关键字 f成为散列函数或者哈希函数
散列技术将记录存储在一片连续的存储空间上,此连续的存储空间成为散列表或者哈希表。
冲突:key1 != key2 但是f(key1) == f(key2)
散列函数:
设计原则:计算简单,散列地址分布均匀
常用的散列函数构造方法:
1.直接定址法 f(key) = a * key+b (a,b为常数)
2.数字分析法
3.折叠法
4.平方取中法
5.除留余数法 f(key) = key mod p
6.随机数法
处理散列冲突的方法
1.开放定址法
2.再散列函数法
3.链地址法
4.公共溢出区法