详细图解什么叫平方探查法即二次探测再散列和线性探测再散列(数据结构 哈希函数 哈希冲突)

详细图解什么叫平方探查法即二次探测再散列和线性探测再散列(数据结构 哈希函数 哈希冲突)虽然上文有提到怎么解释的开放地址法处理hash冲突,但是当时只是给了个简单的图,没有详细讲解一下,我当时有点不明白,回头查查资料,然后亲自动手,整理了一下。然后我就三幅图详细讲解一下:什么叫线性探测再散列;什么叫平方探测再散列(二次探测再散列);老师的ppt吧。给个原始数据如上图。下面详细解析。上面的是线性探测再散列。这个简单。

大家好,又见面了,我是你们的朋友全栈君。

虽然上文有提到怎么解释的开放地址法处理hash冲突,但是当时只是给了个简单的图,没有 详细讲解一下,
我当时有点不明白,回头查查资料,然后亲自动手,整理了一下。
然后我就三幅图详细讲解一下:
什么叫线性探测再散列
什么叫平方探测再散列(二次探测再散列);

详细图解什么叫平方探查法即二次探测再散列和线性探测再散列(数据结构 哈希函数 哈希冲突)老师的ppt吧。

给个原始数据如上图。

下面详细解析。

详细图解什么叫平方探查法即二次探测再散列和线性探测再散列(数据结构 哈希函数 哈希冲突)


上面的是线性探测再散列。这个简单。


详细图解什么叫平方探查法即二次探测再散列和线性探测再散列(数据结构 哈希函数 哈希冲突)

这个就是那个2次平方再散列啦。

估计讲的很详细啦吧。


这个只是单纯的看,是不行的,你只是看到,有三个数据在按一定的算法(也就是mod 11 取余)散列到数组上的时候,看到有三个数据产生冲突啦。那么为了让这些数据更好的全部都能落在这个数组上,更好的利用这个数组,不浪费空间,就要去充分利用未分配到数据的数组上的其他位置。那么这就是解决冲突的需求。线性探测法:刚刚开始的时候,数据未冲突的时候,都按照取余的结果挨个按自己的取余结果,可以理解为你上学分班时候,你选座位。当你要去的座位,没人选的时候,你就坐上去,然后这个位置就被选过了,下次如果还有人和你一样,也选了这个座位,那么,他就冲突了。按照线性探测法的做法是:他本来是要坐你的位置的,但是,你已经坐了,那么,他只能以你为基准,查看你的座位的下一个,如果没人就坐下,如果有人,继续找下一个。当他也坐下来之后,后面再来的。发现自己的位置,被这个冲突的哥们占位了,那么,没办法,只能按刚刚那哥们的做法,继续找自己的位置。直到这个班级的所有位置都有人坐,那就OK。对应到这hashmap上就是 把这个数组的所有位置都给占满咯。这个线性探测和平方探测的区别就是在冲突的哥们找自己的位置的差别,一个是挨个查找;一个是高级点,或+n的平方,或-n的平方。都是为了占满教室的位置。

下面是一个总览的链接:

java 解决Hash(散列)冲突的四种方法–开放定址法(线性探测,二次探测,伪随机探测)、链地址法、再哈希、建立公共溢出区

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/146387.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • List转Map_三种不退转

    List转Map_三种不退转List转Map三种方法。

    2025年9月4日
    7
  • matlab直方图归一化_matlab归一化函数normalize

    matlab直方图归一化_matlab归一化函数normalize直方图规定化直方图均衡化的优点是能自动增强整个图像的对比度,但它的具体增强效果不易控制,处理的结果总是得到全局的均衡化的直方图.实际工作中,有时需要变换直方图使之成为某个特定的形状,从而有选择地增强某个灰度值范围内的对比度,这时可采用比较灵活的直方图规定化方法.直方图规定化增强处理的步骤如下:令Pr(r)和Pz(z)分别为原始图像和期望图像的灰度概率密度函数。如果对原始图像和期望图像均作直

    2022年10月19日
    3
  • websocket设置header(HttpCanary)

    OkHttpClient的性能要优于HttpClient,因此本例来教大家如何配置使用它.在要使用的地方直接@Autowired即可:测试:

    2022年4月16日
    850
  • 电脑广告多?Windows 自带恶意软件删除工具还不会使用?有必要安装杀毒软件吗?

    电脑广告多?Windows 自带恶意软件删除工具还不会使用?有必要安装杀毒软件吗?可能有些小伙伴发现,哎?为什么我的电脑弹窗广告这么多?难不成小视频看多了?电脑中毒了?Windows系统自带的恶意软件删除工具你还不会使用?今天我们一方面带领大家学会使用这个系统自带的工具,另一方面,谈一谈作为一个程序员对于恶意软件和杀毒软件的一些看法,希望能帮助大家纠正一些误区。

    2022年6月24日
    34
  • 单调栈应用[通俗易懂]

    单调栈应用[通俗易懂]题意大概让算t秒每一秒的最短路和,每条边每秒dis++;dp算距离dis[i][j]:1到i点走j条边的最短路O(n(n+m));单调栈维护个上凸;等差数列n^2求解;代码:#include#include#include#include#includeusingnamespacest

    2022年9月22日
    1
  • linux常用命令大全新手入门(零基础自学葫芦丝快速入门篇)

    一、学习前准备帮助文档Linux命令大全(★★★),可以在上面找到你要查找的linux命令Linux命令大全|菜鸟教程Linux教程|菜鸟教程Tab补全Tab补全是非常有用的一个功能,可以用来自动补全命令或文件名,省时准确。未输入状态下连按两次Tab列出所有可用命令已输入部分命令名或文件名,按Tab进行自动补全,多用你就肯定会喜欢的了。…

    2022年4月18日
    60

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号