散列表是根据关键字而直接进行访问的数据结构,它建立了关键字和存储地址之间的一种直接映射关系:
散列函数的构造方法
- 直接定址法
- 除留余数法
- 数字分析法
- 平方取中法
处理冲突的方法
开放定址法(发生冲突时按某种探测序列寻找下一个空位置):
- 线性探测法
- 平方探测法
- 再散列法
- 伪随机序列法
此外还有拉链法(链地址法),将同义词存储在一个链表中。
散列查找及性能分析
散列表的查找效率主要取决于散列函数、处理冲突的方法和装填因子 (表中记录数与表长的比值)。装填因子越大,冲突越多,查找效率越低。
散列表是根据关键字而直接进行访问的数据结构,它建立了关键字和存储地址之间的一种直接映射关系:
开放定址法(发生冲突时按某种探测序列寻找下一个空位置):
此外还有拉链法(链地址法),将同义词存储在一个链表中。
散列表的查找效率主要取决于散列函数、处理冲突的方法和装填因子 (表中记录数与表长的比值)。装填因子越大,冲突越多,查找效率越低。