求问Hash
  • 板块学术版
  • 楼主DPair
  • 当前回复3
  • 已保存回复3
  • 发布时间2020/10/9 16:01
  • 上次更新2023/11/5 11:28:20
查看原帖
求问Hash
66511
DPair楼主2020/10/9 16:01

某以竞赛闻名的学校下发的课件中有这样一段话:

直接取余法 
我们用关键字k除以M,取余数作为在Hash表中的位置。函数表达式可以写成:h(k)=k mod M
例如:表容量M=12,关键值k=100,那么h(k)=4。该方法的好处是实现容易切速度快,但是如果M选择的不好而偏偏标本又很特殊,那么数据容易在Hash中扎堆而影响效率。
对于M的选择,我们一般选择不太接近2n的一个素数;如果关键值值域较小,我们一般在此值域1.1—1.6倍范围内选择。例如k的值域为[0,600],那么M=701即为一个不错的选择。

话说值域为 kk 的情况下你模数取得比 kk 还大哈希不是完全没有意义吗。。。

还是说我对哈希有什么误解。。。

2020/10/9 16:01
加载中...