- 博客(3)
- 收藏
- 关注
原创 MIT算法导论-第7,8讲-哈希表
1.哈希函数的选择一个好的哈希函数H需要哪些特点:1.keys均匀的映射到表的槽内2.键值的分布特性应该不影响这种均匀性质选择的策略主要有两种:除法散列法 ,乘法散列法。(1)除法散列法: 定义hash函数为 h(k) = k mod mm的原则就是m选为质数且不能太接近2或者10的幂次。原因:键值的低位可能具有某种分布规律,如果选择2或者10的幂次容易出现冲突。(2)乘法散列法:设m=2^r, 计
2015-12-10 09:14:20 968
转载 为什么求模运算要用素数(质数)—— 哈希表设计
在设计用除法来散射的哈希表时,我们都会用数值模哈希表大小,得到的余数来作为ID存入哈希表对应格子中。所有文章都表明要用一个较大的素数来作为哈希表的大小,也就是要模一个较大的素数。但为什么就是要用素数呢?简单分析一下可以看出玄机。先看看如果用一个合数8作为哈希表大小,0-30在哈希表中的散射情况:(表1)再来看看用质数7作为哈希表大小,0-30在哈希表中的散射
2015-12-02 19:52:03 1218
原创 MIT算法导论-第六讲-顺序统计问题
1. 最小值和最大值在一个有n个元素的集合中,需要做n−1次比较才能确定其最小(大)元素。如果要同时找出最小值和最大值,通常的做法是对每一个输入的元素都与已知的min和max作比较,这样相当于独立完成两趟查找进行2(n−1)次比较。事实上,只要记录已知的min和max,每次取2个元素进行比较,然后较小的和min进行比较,较大的和max进行比较,这样就实现了对每两个元素进行3次比较,总共只需要3⌊n/
2015-12-01 13:51:26 836 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人