| 1 Hash:译作"散列" 见名知道意(之前就傻乎乎的Hash Hash 都不知道啥是Hash ) 定义:把任意长度的输入,通过散列算法变换成固定长度的输出,该输出就是散列值. 这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间. 不同的输入可能有相同的散列值. 散列值不同,关键字必不相同. 散列函数与散列表: 若结构中存在和关键字K相等的记录,则必定在f(K)的存储位置上.(无需比较,直接得到所查询的记录.) ---此对应关系即为散列函数. 按照散列函数事先建立的表:::即为散列表 碰撞: 不同的关键字可能得到同一散列地址,这种现象称为碰撞.即key1!=key2,f(key1)=f(key2) 同义词:发生碰撞现象的关键字是同义词.相对于该散列函数来说. 散列造表(散列)与散列地址: 根据散列函数+碰撞处理方法,将一组关键字,映射到一个有限的连续的地址集上, 并以关键字在地址集中的象,作为记录在表中的存储位置。 这种表:成为散列表这个过程:成为散列造表 所得存储位置:散列地址 均匀散列函数: 任意关键字,经散列函数映象到地址集合中任何一个地址的概率是相等的,此函数则成为均匀散列函数. 冲突处理方法: 开放寻址法:Hi=(H(key) + di) MOD m m,i=1,2,…,k(k<=m-1),其中H(key)为散列函数,m为散列表长,di为增量序列 根据di取值不同,可以再分为3小种(按序 平方 随机) 1). di=1,2,3,…,m-1,称线性探测再散列; 2). di=1^2,(-1)^2,2^2,(-2)^2,(3)^2,…,±(k)^2,(k<=m/2)称二次探测再散列; 3). di=伪随机数序列,称伪随机探测再散列。 再散列法:调用另一个散列函数 |
2 相同的hashCode
规律:Aa===BB Bb===CC Cc===DD 类推 大家都知道 这里我用我的姓的拼音来演示下 这样我们就可以总结出来规律啦 其中的(n-*)代表根次方 这样我们就可以看出来了 如果构造相邻俩个最后的和一样 image
最最重要的是 也就是相邻的两位如果前边的编码差 1 后边的两个的编码就要差 俩个实例吧 还是上边的我的大姓 Ma 作者:马木木 链接:https://www.jianshu.com/p/44e878e987bf 來源:简书 简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。 |
本文介绍了散列函数的基本概念,包括散列值、散列表和散列冲突的定义,并详细探讨了几种常见的冲突处理方法,如开放寻址法及再散列法。

被折叠的 条评论
为什么被折叠?



