文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
8.10.1 直接定址法
如果我们现在要对0~100岁的人口数字统计表,如表8-10-1所示,那么我们对年龄这个关键字就可以直接用年龄的数字作为地址。此时f(key)=key。
表8-10-1
地址 | 年龄人数 |
---|---|
0 | 0500万 |
1 | 1600万 |
2 | 2450万 |
……… | ……… |
2020 | 1500万 |
……… | ……… |
如果我们现在要统计的是80后出生年份的人口数,如表8-10-2所示,那么我们对出生年份这个关键字可以用年份减去1980来作为地址。此时f(key)=key-1980。
表8-10-2
地址 | 出生 | 年份人数 |
---|---|---|
0 | 1980 | 1500万 |
1 | 1981 | 1600万 |
2 | 1982 | 1300万 |
…… | …… | …… |
2000 | 2000 | 800万 |
…… | …… | …… |
也就是说,我们可以取关键字的某个线性函数值为散列地址,即
f(key)=a×key+b(a、b为常数)
这样的散列函数优点就是简单、均匀,也不会产生冲突,但问题是这需要事先知道关键字的分布情况,适合查找表较小且连续的情况。由于这样的限制,在现实应用中,此方法虽然简单,但却并不常用。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论