全心思齐网

线性探测再散列法是啥?

线性探测再散列是哈希表解决冲突的一种计算方法,哈希表又称散列表,哈希表存储的基本思想是:以数据表中的每个记录的关键字 k为自变量,通过一种函数H(k)计算出函数值。

把这个值解释为一块连续存储空间(即数组空间)的单元地址(即下标),将该记录存储到这个单元中。

在此称该函数H为哈希函数或散列函数。按这种方法建立的表称为哈希表或散列表。

Hi=(H(key)+di) % m,i=1,2,……k(k<=m-1),H(key)哈希函数,m哈希表长,di增量序列。

当di值可能为1,2,3,...m-1,称线性探测再散列。开放地址法有一个公式:Hi=(H(key)+di) MOD m i=1,2,...,k(k<=m-1)。

其中,m为哈希表的表长。di是产生冲突的时候的增量序列。

如果di取1,则每次冲突之后,向后移动1个位置。如果di取值可能为1,-1、4、-4、9、-9、16,、16、...k*k、-k*k(k<=m/2),称二次探测再散列,如果di取值可能为伪随机数列。称伪随机探测再散列。

匿名回答于2021-09-22 19:35:25


线性探测再散列法是计算机程序解决散列表冲突时所采取的一种策略。散列表这种数据结构用于保存键值对,并且能通过给出的键来查找表中对应的值。

与二次探测和双散列一样,线性探测是一种开放寻址的策略。在这些策略里,散列表的每个单元都存储一对键值对。

当散列函数对一个给定值产生一个键,并且这个键指向散列表中某个已经被另一个键值对所占用的单元时,线性探测用于解决此时产生的冲突。

匿名回答于2022-02-03 05:23:38


相关知识问答