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

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

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

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

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

给个原始数据如上图。

下面详细解析。

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


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


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

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

估计讲的很详细啦吧。


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

下面是一个总览的链接:

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

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

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

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


相关推荐

  • 如何在JavaScript中使用数组方法:Mutator方法[通俗易懂]

    如何在JavaScript中使用数组方法:Mutator方法[通俗易懂]JavaScript中的数组由元素列表组成。JavaScript有许多有用的内置方法来处理数组。修改原始数组的方法称为mutator方法,返回新值或表示的方法称为accessor方法。在…

    2025年11月3日
    16
  • arpspoof怎么用_技术分析实战工具

    arpspoof怎么用_技术分析实战工具需求太奇葩!arpspoof渗透工具使用方法

    2022年10月7日
    3
  • 至尊问题「建议收藏」

    称号:已知m、n为整数,且满足下列两个条件:① m、n∈1,2,…,K,(1≤K≤10^9)② (n^ 2-mn-m^2)^2=1编一程序,对给定K,求一组满足上述两个条件的m、n,而且使m^2+n^2的值最大。比如,若K=1995,则m=987,n=1597,则m、n满足条件,且可使m^2+n^2的值最大。输入输入仅一行,K的值。输出…

    2022年4月13日
    46
  • LightGBM源码阅读+理论分析(处理特征类别,缺省值的实现细节)[通俗易懂]

    LightGBM源码阅读+理论分析(处理特征类别,缺省值的实现细节)[通俗易懂]前言关于LightGBM,网上已经介绍的很多了,笔者也零零散散的看了一些,有些写的真的很好,但是最终总觉的还是不够清晰,一些细节还是懵懵懂懂,大多数只是将原论文翻译了一下,可是某些技术具体是怎么做的呢?即落实到代码是怎么做的呢?网上资料基本没有,所以总有一种似懂非懂的感觉,貌似懂了LightGBM,但是又很陌生,很不踏实,所以本篇的最大区别或者优势是:源码分析,看看其到底怎么实现的,同时会将源…

    2025年6月6日
    3
  • 电脑基站测试软件,Signalsitemap PC Tools(阿达基站路测PC辅助工具) V3.50 官方版

    电脑基站测试软件,Signalsitemap PC Tools(阿达基站路测PC辅助工具) V3.50 官方版SignalsitemapPCTools是款简单使用的基站路测工具。它针对阿达基站路测有专门的一套分析系统,帮助路测人员工作,有喜欢的用户不要错过了。【主要功能】1、SignalsitemapPCTools是配合Signalsitemapandroid(阿达基站路测)在PC上使用的辅助工具。2、支持在PC上进行路测数据查看分析,支持导入基站、路测信号回放、室内测试分析等。3、可用于生成…

    2025年6月24日
    2
  • 输入3个数a,b,c,要求输出最大值_二维数组求最大值及下标

    输入3个数a,b,c,要求输出最大值_二维数组求最大值及下标7-1 求最大值及其下标 (20分) 本题要求编写程序,找出给定的n个数中的最大值及其对应的最小下标(下标从0开始)。输入格式: 输入在第一行中给出一个正整数n(1<n≤10)。第二行输入n个整数,用空格分开。输出格式: 在一行中输出最大值及最大值的最小下标,中间用一个空格分开。 输入样例: 6 2 8 10 1 9 10 输出样例: 10 2#inc…

    2022年8月18日
    6

发表回复

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

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