联系hashgameCONTACT hashgame
地址:广东省广州市
手机:13988889999
电话:020-88889999
邮箱:admin@qq.com
查看更多
Rhashgamehashgame
你的位置: 首页 > hashgame

散列表哈希表HASH GAME - Online Skill Game ET 300

发布时间:2025-04-18 11:27:13  点击量:

  HASH GAME - Online Skill Game GET 300

散列表哈希表HASH GAME - Online Skill Game GET 300

  当数据规模接近哈希表上界或者下界的时候,哈希表完全不能够体现高效的特点,甚至还不如一般算法。但是如果规模在中央,它高效的特点可以充分体现。试验表明当元素充满哈希表的90%的时候,效率就已经开始明显下降。这就给了我们提示:如果确定使用哈希表,应该尽量使数组开大,但对最太大的数组进行操作也比较费时间,需要找到一个平衡点。通常使它的容量至少是题目最大需求的120%,效果比较好(这个仅仅是经验,没有严格证明)。

  哈希函数的设计很重要。一个不好的哈希函数,就是指造成很多冲突的情况,从前面的例子已经可以看出来,解决冲突会浪费掉大量时间,因此我们的目标就是尽力避免冲突。前面提到,在使用“除余法”的时候,h(k)=kmodp,p最好是一个大素数。这就是为了尽力避免冲突。为什么呢?假设p=1000,则哈希函数分类的标准实际上就变成了按照末三位数分类,这样最多1000类,冲突会很多。一般地说,如果p的约数越多,那么冲突的几率就越大。

  简单的证明:假设p是一个有较多约数的数,同时在数据中存在q满足gcd(p,q)=d>

  1,即有p=a*d,q=b*d,则有qmodp=qp*[qdivp]=qp*[bdiva].①其中[bdiva]的取值范围是不会超过[0,b]的正整数。也就是说,[bdiva]的值只有b+1种可能,而p是一个预先确定的数。因此①式的值就只有b+1种可能了。这样,虽然mod运算之后的余数仍然在[0,p-1]内,但是它的取值仅限于①可能取到的那些值。也就是说余数的分布变得不均匀了。容易看出,p的约数越多,发生这种余数分布不均匀的情况就越频繁,冲突的几率越高。而素数的约数是最少的,因此我们选用大素数。记住“素数是我们的得力助手”。

【返回列表页】

顶部

地址:广东省广州市  电话:020-88889999 手机:13988889999
Copyright © 2018-2025 哈希游戏(hash game)官方网站 版权所有 非商用版本 ICP备案编: