1 解决冲突方法
1.1 链接法
又叫拉链法,将具有同一散列地址的记录存储在一条线性链表中
1.2 开放定址法
通过对原hash函数进行修改,添加探查函数,当出现冲突时,往下一个地址写数据
图中p(i)为探查函数
探查函数分为以下四种:
线性探查法:(p(i)为1,2,...,...n)
二次探查法
随机探查法:(p(i)为随机数)
双散列函数法
使用开放定址法时最好能确保散列表的装填因子处于较低的水平.
1.3 桶地址法
为表中的每个地址关联一个桶,一个桶可以存储多个元素.如果桶满了,可以使用开放地址法.
1.4 建立公共溢出区
把冲突元素统一放到公共溢出区,遇到冲突时直接将冲突元素定向到公共溢出区的位置上,在冲突极少时比较常见.
2 散列表性能
2.1 衡量性能
使用平均查找长度衡量查找效率
2.2 影响产生冲突因素
散列函数