天天看点

7.4.2散列函数的构造方法7.4.3处理冲突的方法7.4.4散列查找及性能分析

7.4.2散列函数的构造方法7.4.3处理冲突的方法7.4.4散列查找及性能分析
7.4.2散列函数的构造方法7.4.3处理冲突的方法7.4.4散列查找及性能分析

思维导图用了一些时间成品棒棒哒🎉🎈

冲突厨艺的说法以及想要表达的性能分析,首先我们先来学习一下散位函数的工作方法,如何构造一个小a函数呢,我们先来回忆一下小a函数的几个概念,它是一个把叉叉表中的关键字映射成该关键字,对应的地址的这样一个函数下面是我们的计算方法,它是k我们最终求得值,是我们对应存储单元的d值aDDR那么3a函数,我们无论是在构造散列表的过程当中,还是在散运表中进行查找时,都要用到这样的函数,那么如何构造它呢?我们先来看一下它的构造要求,第1个要求是响应函数的定义域必须包含全部需要存储的关键字,这一点是必然的,为什么呀?如果地域不包含我们所要存储的关键字的话,那么这些关键字就无法通过sin函数映射到对应的存储单元上了食欲的范围大小。我映射到对应的参数单元上了,而下一句是值域的范围,则依赖于散列表的大小或地址范围,这一点也是非常好理解的,因为我们如果对应求得了这样一个值无法求算出我们三个表中的每一个测量单元的地址的话,那么这些历史的存储单元是不是就浪费了?所以值域的范围则依赖于SUV的大小或d值的这样一个范围,那么第2个要求是什么呢?Sin函数计算出来的一指应该能等待对均匀的整个地址空间上从而减少冲突的发生,因为如果它不均匀的分布在这种空间上的话,如果我们所有求的关键字对应的映射到的地址都是同一个的话,那么它们是不是都产生冲突了?所以我们要求它最好能够等待率均匀的分布在历史空间上,这样可以减少对应的冲突的发生。发生而最后一点则是响应函数应尽量简单能够在较短的时间内计算出任意关键字对应的这样一个3a地址,那么这一点大家也非常好理解,如果它非常难计算的话,我们对应的效率就会非常好,讲解完了三个够之后,接下来我们就来学习一下,在行业当中会主要涉及哪些构造方法,首先第1种好的方法是直接定植法,它是直接选取关键词的某个线性函数的值为cd值,那么我们看一下它的表示方法,是不是大家就非常好理解了,它是k这样一个函数等于a,×k加b,右边是一个线性函数,其中ab为常数,那么这里如果我们a=1时b=0时,那么还是k,是不是就等于p啊,表示我们对应这个关键字以及映射到的这个地址的值是相等的这样的方法有什么特点呢他的方法非常简单。好的,那么这样的方法有什么样的特点呢?我们发现它的方法非常简单,就是一个线性函数,而且一定不会产生冲突,为什么这是个线性函数的这样一个特点啊?因为在线性函数当中,每个自变量只能表示着根因变量,所以对应我们可以用这样一个关键字,这样一个线性函数,求算出的地址也只有一个那么不同的关键字,不会存在出相同的地址,所以它不会产生冲突,但是有一个缺点就是如果关键字分布不连续只会浪费空间,那么也非常好理解它是这样一条直线,如果关键字不连续的话,那么之间我们所求算的这些地址是不是都会浪费啊?接下来我们来看一个小例子,这是一个具有6个存储单元的一个线性表,一个。

职业定制法的一个缺点,虽然他的方法简单不会产生冲突,但是他有这样的浪费空间的缺点,对他的应用其实并不是很常见,好,这就是第1个方法,接下来我们介绍下一个方法除冰取法,其实这种方法怎么实际应用当中是最常用也是最简单的一种方法,其实我们上一节课有简单的表示过,就是运用了这样一个全拼的操作,找到对应k所映射的这样一个地址,那么因为我们用到了曲p的操作,所以选p选这个曲的p是一个关键,它可以减少冲突的可能,什么意思呢?例如如果关键词集合当中偶数非常多的话,如果我们选择p为2的话,是不是我们会将大部分的偶数所有的偶数都映射到下标为0的那一个位置啊?因为5数÷2是不是都等于0啊这样就会增加冲突的所以选披上重要的怎么样的选择我们这样的规则。所以选批是非常重要的,那么怎么样来选择这样一个p呢?我们这样的规则假定响应表表长为m,我们要取一个不大于m,但最接近或等于大m的质数 p,我们取这样一个质数为p,这样可以减少冲突好,这就是属于取法的一个表示,接下来我们就来看一个小例子,那么我们利用了这样的三函数,我们取了一个5,这是p等于5,那么接下来我们看关键词集合为这样5个关键词,我们一个一个来对它们进行存放,16取于5=1,所以它存放在下列为1的位置,23÷5=3,所放在下标为3的位置,30取5=l所放在下标为0的位置,4÷5=42÷5=来计算了每一个地址。注意用了除油取法来计算了每一个关键字对应用射到的地址,另外它们进行了存储,那么对于如果我们想要查找的话,方法也就相同,还是利用了这样一个sin函数,那么30取5=0,所以它存放在下面为0的位置,我们这样就可以直接找到关键字,30是放在三个单元了,好,这就是鼠标取法。当然了好,这就是主要取法。把数字分析法其实对于这种方法给大家举个例子,大家知道非常好理解,这种方法是如何应用的了,那么我们也出了8个二简述同学们发现前8位的话,是不是前4个2就是数是相同的,后4个数是相同的,而最后的思维是不是所有的因数都是不同的,且他们出现概率是相等的,那么此事如果我们将后4位作为该吧的,关键是它对应三个地市的计算的话,那么晚这样的方法就是我们今天现在所学习的数字分析法,那么数字分析法其实就是我们选取的关系当中的几位,这样几位有什么样的特点呢?它们的出现是均匀的,我们将这几位作为我们对应3a地址的计算分析法用了他们的条件减少冲突的产生其实我们当中是不是。照这样的冲突的产生,那么其实我们在应用当中例如我们学号的散文地址计算的话,是不是也可以用到这样的方法啊?我们每个人学号可能前几位都是相同的,档对应着我们入学的年级以及对应着我们的班级,那么后几位可能是不同的,所以我们此时如果用后几位作为散位地址的计算的话,就可以减少冲突的产生那么好,这就是数字分析法,它适用于关键是意志的集合,若更换关键色泽需要构造重新构造三维函数,这一点非常好一键是不是?如果国家4级和不一致的话,我们就无法知道哪几位他们是等待力均匀地出现的而弱化,那次如果更换的话是不是对应他们等待率的,这样条件就破坏了,那么我们就需要重新构造对应到相应函数,还有这就是数字分析的方法一件中间行为作为。数字分析的方法,接下来我们来介绍平方取中法这种方法也非常的好理解,它其实是取关键词的平方值的中间几位作为响应地址,比如我们对应的关键字是521,那么我平方之后得到了271441,如果我们此时选择7144作为sin定制的话,那么我们就管这种方法叫做平方取中法,它有什么样的优点呢,它是适用于观音寺的美味趣事,不均匀的时候或均小于3a地质所需要的位数,如果对应这一个波音斯的地质位数太小了的话,那么我们平方之后它的位数是不是就变多了?这样我们选取中间我们需要的几位就可以适用了这样的平方取中法来满足了这样小于3a地址所需位数的这样一个情况,最后一种方法是折叠法相关性字分割成位数相同的几部分,呃,注意这里,我们最后一部分可能然后去这几。要注意这里,我们最后一部分可能有的时候会小一点,然后取这几部分的叠加作为响应地址,什么意思呢?例如就这样的关键字5211252,那么我们选取521+125+2,得到了最终这样一个数字,为我们折叠法最终形成了这样的三个地址,这就是折叠法,那么它剩余关键词位数比较多,而且关键词中到每位数字分布大致均匀的情况下,那么它与平方曲中法刚好相反,是不是我们嫌弃它这个关键字位数太多了呀?所以我们要把它分割开来,然后求一个和这样就可以缩减对应的位数,而这样我们就可以得到一个位数更小的三元地址,好这就是折叠法,那么其实在考研当中,在我们考试当中最常应用的是我们对应的的除标取与法,那么其他的几种方法,大家在选择题当中或者在我们概念的一个说明当中,能知道它是大概是怎样的一个过程就可以了。我们知道冲突不可能取得避免,那么应该如何处理这样的冲突发生时的情况,我们为冲突产生冲突的,关键是寻找下一个空的还是地质,是不是就可以了,我们观察这个详细表是不是下面有我的地址为空啊,如果有什么方法可以将24啊存放在5的这个位置上,是不是就非常的好了?那么接下来我们就来学习处于冲突的这样一个方法,那么上述描述的过程其实是我们第1种方法叫做开放定值法,那么我们还学习一种出门方法叫做拉电法,我们一共有这两种重复的方法,首先我们来看看什么是开放订执法呢,它是指可行放心表象的贡献力,至系向他的同一丝表象开放意象,他的非同一丝的表象开放,什么意思呢非常好一点二十四因为他们都是非常好一点二十四因为他们都存放在。是因为他们都是放在下面为4的位置,那么24我们也可以把它放在下面为5的位置,这样一个空闲位置,是不是就是他又向非同一次表现开放了,那么下面为5它像了一个非同1死24开放了,那么所以这样的方法叫做开放定制法,既像同义词表像开放,又像非同义词的表象开放,那么我们形式化表示就是这样一个表示 hI与hk加dI处于这个m,那么为什么要除以m呢?M是比较长,那么因为有的时候我们加上一个数的时候,是不是就会超过这个表长啊?然后我们除以m是不是就是循环了对它进行存放方法一个是为了一个信念怎样的序列就是我们下一个。序列,那么这个增量是不是就是我们下一个存放存款单元啊,我们我们利用了之前它实际地址还是函数计算出了这个值,加上我们往下走的这一个距离就得到了,我们存放到现在,所想要存放到这一个第10单元,我们用hI来表示,那么大家会发现这是一个地推的方法,什么意思呢?就是我们加上了一个增量,可能找到的那个位置,它依旧存放了5.4,那么此时我们是不是还要继续向下再找一个增量,所以我们用了这样一个增量序列来表示,我们每一次都要向下再走一个位置,走一个距离,来找到对应的那一个关键字所要存放的那一个地址,那存的单元,如果它为空的话,我们是不是就可以存放了?如果他没骂他损坏了关键词的话,是不是还要向下继续寻找啊?所以我们用h来表示来表示,我们da几次来寻找这一个位置,好,那么接下来我们来看一个小例子。网店几次来寻找这一个位置好,那么接下来我们来看一个小例子啊,首先我们是不是利用了三个函数hk来计算了我们对应的映射到的这一个地址,如果此时我们发现该地址已经存放了文字的话,我们是。地址如果此时我们发现改地址已经存放了本次的话,我们是不是还要利用开放定时法向下继续找到下一个我们所要找到的这个空闲的一个算术单元啊,那么我们整个用了这样的公式,hk加dI取m此时第1步是不是第1次寻找?是不是第1个怎么样d名,那么我们加上hk加上d0取m其上出了h0,那么我们这是第1个找到的这样一个空闲的一个单元,如果他空闲的话是不是直接存放就可以了?如果他不空闲的话,我们是要地推的向下继续进行寻找,那么此时我们要加上第一h1就等于hk+d1取m,这样我们找到了我们这样一个空隙的存单元对它进行存放,将活颜色存放在其中如何计算这个资料我们有哪些。对它进行存放,将活颜色存放在其中,那么如何计算这个增量dI呢?我们有哪些方法呢?我们分为这样4种方法,线性探察法,平方探测法以及在此列法和尾随机序列法,那么这一比较重要的是线性探查法,那么我们在考试当中最常考察的其实是线性探查法,那么其他三种方法其实与我们之前所学习的要把sin函数的过错方法一样,它都是在选择题当中比较常考查到我们对它只要知道它如何进行的就可以了好,那么接下来我们再来学习一种方法线性探测法,那么它的dI是什么呢?是0123一直到m-1这样一个增量序列来看一下如何这是一个三元。那么我们就可以用线性探查法来看一下它是如何处理冲突的,那么这是一个3a表,一共有9个组成单元,我们的散位函数是一个取于方法,那么是k取9,那么这里是一个小存放关键词的集合,有没有关键词我们来一个一个对它进行存放,首先是第1个关键字一局9是不是一样,它存放在下列唯一的位置,10取91就是1,那么我们利用线性探测法向下找了一个单元,是不是就是存放在下面为2的这样一个位置啊?接着是21 21就是要存放在三下标的这个位置,因为它取于等于3,那么15取于等于6,所以存放在下标为6的位置,14取=5,存放在下列为5的位置,23取之后依旧等于5,我们来线性探测一下,那么23÷9=50,它应该存放在355的位置。15存放了关键字14,那么我们探测下一个三个单元下一个算术单元依旧是满的,那么依旧启发了关键字15我们继续向下探测,探测到了第七,也就是相对为7的这样一个位置,它是不是空闲的呀?所以将23存放在这样一个位置,那么先行探测法非常好,记忆是不是就是如果我们所要映射的这一个错误单元已经存放过一次的话,则继续向下找一个成本单元就可以了,那么如果找到的这个3单元还是综合保险司的话,再继续向下找一个单元,那么同学们在这里可能会有一个小疑问,就是我们一种新的方法爱找到了一个空闲单元,对我们关键字发生冲突时进行存放,那么我们应该如何进行查找呢?例如我们来查找23这个关键字来试一下23,如果按照我们之前的方法,23取九它等于的是不是啊?对应着5啊发现。这我问一次来试一下,23,如果按照我们之前的方法23÷9,它等于的是不是要对应着5啊?那么5我们发现是不是没有存款23了我们应该如何进行查找呢?其实我们继续的就是按照线性探测法的方式进行查找,现在的法是不是就是如果在位置满的话,我想继续向下找一个空闲的位置依次进行查找,那么我们查找过程当中是不是也需要这样的步骤?如果14不等于23的话,只要继续向下查找,因为它也可能存放在它的下一个存储单元当中那么15不等于23,我们依旧还要向下进行查找,我们查找到了7这个位置省放了23,这样我们就查找到了23这样一个关键字,那如果概括一次,不存在在我们所释放的集合当中呢来源还没有查找到。空写的单元啊,如果我们查找到一个空写单元,还没有查找到对应照,我们需要查找的是关键字,那么则表示它并没有存在在这一个散列表当中,那么同学在这里可能会发现了,在散列表的插手过程当中,是不是依旧还是用到了比较啊,我们在映射到了一个地质存储单元上的时候,要对它与我们所查的关系进行比较,那么如果是的话,在茶城中,如果不是的话,只要查找下一个单元里,那么其实三个表在实际应用当中因为他有冲突的这个弊端,所以最后其实我们还是利用到了比较的这个方法,它与我们之前所学习的那些常用方法,其实还是有一些相似之处的,还是用到了比较的过程,那么接下来我们来看一下现象探索法有哪些缺点,我们还是利用了这样一个渠构造了一个sin函数,然后存放了这4个关键字,我们来依次给它进行存放一直放在。时因为一已经存放在了下辈唯一的位置,所以他要向下进行现象探测啊,嘉羿走一个小单元,他存放在了下表为2的位置,那么十一依旧要进行渠操作,取之后等于2,我们发现二是不是已经被这一个10关键字所存放了,所以它要存放在下一个什么单元当中,然后十二曲酒之后等于三三倍关键41进行存放了,所以它存放在下面为4个位置,那么这样同学们可能会发现,我们是不是每一个对应用社的这一个关键词都没有存放在它对应的存放的那一个下标当中啊,他是不是向下移了一格啊?那么这样我们在查找的时候,他是不是就需要向下比较一次啊?所以这样就会降低我们的产生效率,所以这样的现象乘坐为堆积现象,这些现象会大大降低查找效率。教育,所以这样的现象,我们称作为堆积现象堆积现象,会大大降低查找效率,所以先探测可能会出现这样大量相邻的关键字元素存放在一个相邻的位置,他们产生了堆积产生这样的具体现象,会影响我们最终的查找效率,好,这就是先生探测的一个非常重要的缺点,接下来我们来看剩下的三种方法,首先是平方探测法平方差的法,我们来看一下它的怎么样序列,dI=0方,一方-1方,2方-2方知道,k方负k方其中k是小于= m÷2呢,这又发现了对应的增量修改,是不是不仅仅只有正数了,有正数有负数,所以在平方探测法当中它是跳跃着进行探测的,在上面找一个位置位置而且他做事。然后在下面再找一个位置,而且它增加的长度是平方的长度,那么14 10 96那么月探测,其实它距离我们对应初始的这个因式的位置是越来越远的,它远的幅度也是越来越大的,所以越来越大的,所以这样的平方特斯拉会避免堆积的这样一个问题,但是它有一个缺点是不能探测到三个表传导所有单元,但是至少可以探测到一般单元,因为它是这样平方的形式,所以当然它不可以对应探测到所有的单元上,那么其实在频发探测法当中,我们对于散文表达表长有一个要求,就是它是4k+3的素数这里提一点,大家可以简单的记忆一下,简单的理解一下这其实就是为了避免个问题问题让我们学习的方法二三一十家到底。那它的方法因为它是现象增加到从0123一直加到对应到m减1,它是不会产生重复的问题的,但是在平方探测法当中,它可能会出现重复的问题,查重的问题目就是加上这个增量之后,不同生药可能会映射到同一个地址当中,那么这一点大家可以简单的了解一下,最后一种方法就是再想一个法和为学习法,这样的散文法非常好理解就是我们如果产生冲突,则利用了第2个三个函数来计算这个增量,那么对应这个a就是对应向下探测的一个次数,然后为学习法就是这个增量序列,是一个伪随机序列,这里为什么要加上喂呢?是不是因为在计算机当中没有绝对的随机啊?所以这也是一个为随机训练这种计算方法进行地质单元的方法最重要的是我第一个学习的现象。转增量序列的方法,进行向下找空闲的地址,单元的方法,那么这里最重要的是我们第1个所学习的线性探测法,在考试当中经常对它进行应用和考察。的话可以提供一个解决冲突的方法,为什么我们还要设计出拉变法呢?我们来看一下这个例子,我们来回顾一下这些我们所举的这个例子,我们介绍出了一个hk,这是我们用哈希函数计算出的对应的地址,那么因为我们对要计算出的这个地址存放的关键字,我们是要继续利用增量修炼来找到下一个所有单元找到了h0h0,依旧它是存放了核心词的,所以还利用这个序列找到下一个组成单元,h1我们下上了第一,那么我们将关键字k进行存放,那么如何进行查找呢?之前我们提到过,我们是利用了这样开放定值法,还有我们对应的sin函数来找到对应的关键字的,我们首先利用了sin函数,hk找到了第一,映射到这个地理单元,我们比较它其中的关键字,发现它不是对应所要找到的这个k,只要利用对应的开放定制法,它提供的怎么样计算的方法。是对应所要找到的这一个k,只要利用对应的开放定制法,它提供的怎样计算方法求算出d0,找到下一个我们可能存放的这个地址单元h0,我们继续与它其中存放的光源色结合比较,它依旧不等于k,所以还有一个月我们对应的这一个增量序列,第一找到下一个,我们可能存放它的第10单元 h1,我们比较一下发现它存放了k,所以我们找到了k值一个关键字,那么此时我们发现是不是我们利用了这样一个三个函数以及对应的增量序列,才能找到对应的我们所存放的这个k的第10单元啊,那么此时我们来看一下,如果我们对抢列表进行删除,或者是操作我们删除了a是0所存放的这样一个关键字,那么它会产生什么样的问题呢?我们来看一下,如果此时我们还要找到这个关键词,可以存放到存储单元的话我们依旧用了这样一个。保存单元的话,我们依旧运用了这样一个哈心函数,求三l它第一映射到这个地址,然后我们利用了增量的这个序列,找到了下一个可能存放的地址,h给了我们发现这里是不是空啊,根据我们之前所学习的过程,是不是如果它为空则表示我们没有对它进行存放啊,所以说此时我们根本找不到我们对应存放的这个关键词,k我们认为它并没有形成到散列表当中,因为我们断了所查找的这一个链子所查找的这一个序列,所有问题是如果我们直接删除对应在采用表当中的关键字的话,可能就会影响某一些关键词的查找过程,在开放定制法当中不能随便伸手某关键字,因为他有这样的特点,所以啊,开放定址法他解决冲突并不是完美的,他会有这样的弊端吃饭。把它解决冲突并不是完美的,他会有这样的弊端,那么如果我们在实际应用当中必须要用到开放定址法的话,其实我们可以设立一些标记标记他是为我们查找某个核心4的一个图形过程,那么这样也可以解决开放定制化,产生了这一个弊端这个问题,那么增加关键字也会产生一个弊端,就是我们除了要维护关键字以外,还要不停的更新审议表,不停的定期维护这样一个审议表,然后这就是开放定时法,一个非常重要的一个特点,一个弊端,大家注意一下,在考察当中经常会考察这个特点好的,接下来我们就来学习拉练法,拉练法就是把所有同义词存放在一个线性的链条中,那么所有应用到同一地址下的这些关键字他们起来。这是我们对应的关键字了,存放的是我们指向存放着关键词的单位表的头指针,我们通过这个图纸真就可以遍历到所有映射到该地址下的关键词,这样我们就可以处理冲突这一个问题,也就是说三个表当中存放的是头指针,然后每个头指针指向的是一个存放所有同义词的这样一个单位表,我们来看一个例子,例如我们来看这样一个例子,存放着这样一些整数元素的一个。我们是不是就处理了这样冲突的问题,我们用了一个单面表来存放所有同义词存放所有映射到同一地址下的关键字,好,这就是拉内法解决冲突,那么兰英法适用于经常进行插入和删除的情况,因为我们不用考虑,他会因为删除断了某一些关键词的查找的这一个序列,那么其实同学们会发现,在开放定址法当中,我们其实用了一个一个递增序列来表示了我们存放同义词的这样一个练,但是在拉链法当中,我们是把它实际的用了一个单链表来存放了所有同义词,其实它们的原理都是一样的,但是在开放电视法当中,我们因为删除可能会造成了一些断断开这样查找序列的情况,那么在拉音法当中,我们因为从它在单片表当中所以不会出现这样的问题,所以这是拉音法他会增加一些。状态这样找徐悦的情况,那么在巴颜法当中,我们因为从他在单链表当中所以不会出现这样的问题,所以这事来源法,但是在扫当中它会增加一些指针域,那么会消耗一定的分数空间,所以根据实际情况我们来做出采用哪一种方法更合适一些,那么其实在实际应用当中,比如说在Java当中很多的有关send表的应用,我们都是采用的是拉练法,因为它既方便那么又不会产生,我们例如在开放定制法当中那一些删除造成的问题,那么这就是拉练法好,那么接下来我们就来看一下,我们既然知道了怎么样处理冲突,怎样利用sin函数来存放各个关键字存放各个元素,那么接下来我们就来看一下三个表示如何对它们进行查找的,其实我们之前已经讲过了,对他们如何进行查找,那么就是按照三例的散列函数的方式,一些解决冲突的哪些方法来对他们进行查找,接下来我们就来总结一下他们的查找方法这是。啊,当然这里的开放定址法采用的是我们的线性探查法来解决的,冲突号我们来总结一下,首先是不是要初始化的这样一个散列函数,一个好的这样一个散数计算的地址,然后检测查找本中地址为a dd2的位置上是否有这样的记录,若无记录说明它为空则返回插入失败,没有这样的记录,但是如果有记录,是不是还要与它的k值进行比较,因为我们会采用开放定制法或者是拉链法来解决冲突,所以当前存放的这个地质单元可能会有记录,但是并不一定就是我们所要存放的这k所查找的这个k,所以一定要与它进行比较,那么若相等则尚未成功,若不等则执行不知二不知道是什么呢,不知道是不是?就是根据一些特定的处理冲突的方法计算下一次列的这个地址吧。冲突的方法计算下一散列的这个地址吧,也就是计算我们对应的增量来找一下下一个,如果该位置满的话,下一个我们应该存放的位置是哪个?把ad加设为sd值,然后转入步骤一来进行比较判断。把ad加置为死地址,然后转入步骤一来进行比较判断来判断该位置的k是否与我们所查到的k是否相等,其实这一操作步骤就是与我们之前所讲出的那些查找的步骤是一样的,只不过现在我们来总结了一下,那么我们再来举两个例子吧,例如在拉一法当中我们想要查找28种关键字,首先是不是应该通过小于函数确定它一定是存放在数下标为1的这样一个啊,单列表当中啊,然后在单列表的查找就非常的方便了,即是通过它的头指针锁定第1个这样一个节点,然后依次的对他们进行查找,这个关键词体现出来效率就可以了,那么散列表,如果是采用开放定值法的话,则首先还是要通过散函数确定它的这样一个地址是不是就是一样,然后我们来看28在哪呢,28 15在一的这个地址位置啊,因为这里我们刚刚所说了,它是采用的是线性猜测法,所以如果它们存放在下边唯一的位置的话。28三档呢,28 15不在意的这个地址位置啊,因为这里我们刚刚所说了,它是采用的是啊线性猜测法,所以如果它们存放在下表为1的位置的话,它可能存放在下一个从单元也就是下列为2的位置,我们来比较下列为2的位置

装填因子

7.4.2散列函数的构造方法7.4.3处理冲突的方法7.4.4散列查找及性能分析

继续阅读