新认识如何选择哈希表的模数

以前一直觉得对于HashTable,如果选用它的模数,应尽量选择素数或质数,但,深入考察这个问题后,觉得这个认识有待商榷

哈希表用途

在哈希表的key,通过散列函数可以与查找位置有接近O(1)的效率时,则哈希表相比较于平衡树型索引数据结构,就获得更高的效率。

其它场景,则需要根据索引类型的不同,进行具体选择评判,利用成熟的关系数据库系统做索引,则是一个很不错的选择!

天下无免费的午餐,在问题出现等概率的情况下,某个解决方案如果有一半适合,则有另外一半是不适合的。

那么面对的key值概率空间,到底是什么样子的呢?

是需要深入考究的问题,是否存在某种模式或规律?!

哈希表的装填因子

  float a = records/hashTableLen

直观上来看,当表中填入的记录数一定的情况下, 哈希表的长度越长,装填因子就越小,这样冲突的概率就越小。

具体阐释例子

假设hash表的散列函数,通常使用取模的办法。

如果总共的记录数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值