散列基本思想:
构造散列函数--->以key为关键字,通过函数h,计算出函数值h(key),作为数据对象的存储地址
处理冲突 --->不同关键字映射到同一个散列地址 ,即h(key1)=h(key2),需某种冲突解决策略
1.构造散列函数:
设计原则--->计算简单,地址分布均匀
2.处理冲突:
设计原则--->开放地址法,链地址法
构造散列函数--->以key为关键字,通过函数h,计算出函数值h(key),作为数据对象的存储地址
处理冲突 --->不同关键字映射到同一个散列地址 ,即h(key1)=h(key2),需某种冲突解决策略
1.构造散列函数:
设计原则--->计算简单,地址分布均匀
1).直接定址法:
h(key)=a*key+b
2).数字分析法:
分析各位变化,取比较随机位
3).平方取中法:
把key平方后取中间几位
把key分割成位数相等的几部份,之后叠加,按情况取后几位
h(key)=key mod p
6).随机数法 :
h(key)=random(key)
1).ASCLL码加和法
2).前3个字符移位法
2.处理冲突:
设计原则--->开放地址法,链地址法
1).开放定址发
2).再散列法
3).链地址法