Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 数组中的双哈希表示法_Java_Hash_Hashmap_Hashtable_Double Hashing - Fatal编程技术网

Java 数组中的双哈希表示法

Java 数组中的双哈希表示法,java,hash,hashmap,hashtable,double-hashing,Java,Hash,Hashmap,Hashtable,Double Hashing,我一直在尝试做双重散列,但是我对使用双重散列函数h'时会发生什么感到困惑 当第一个哈希函数发生冲突时,是否会将第二个哈希函数的值添加到第一个哈希函数的值中 我已经尝试了很多方法,但仍然无法解决这个问题,问题在于以下链接中的图像: 如何使用双哈希来解决这个问题?如果数组中已经有3个元素,并且还需要插入3个元素,则双哈希是解决冲突的一种方法(将多个键哈希到单个索引)。在双哈希中,将使用两个哈希函数;在发生冲突的情况下,将使用第二个哈希函数查找步长,在表中搜索空单元格以放置键时应使用该步长。此链接概

我一直在尝试做双重散列,但是我对使用双重散列函数h'时会发生什么感到困惑

当第一个哈希函数发生冲突时,是否会将第二个哈希函数的值添加到第一个哈希函数的值中

我已经尝试了很多方法,但仍然无法解决这个问题,问题在于以下链接中的图像:


如何使用双哈希来解决这个问题?如果数组中已经有3个元素,并且还需要插入3个元素,则双哈希是解决冲突的一种方法(将多个键哈希到单个索引)。在双哈希中,将使用两个哈希函数;在发生冲突的情况下,将使用第二个哈希函数查找步长,在表中搜索空单元格以放置键时应使用该步长。此链接概述了可能的冲突解决方法

在您的情况下,在检查附加的图像后,很明显键16会与索引6中的某个其他键发生冲突,因此,您必须应用第二个哈希函数来确定步长。根据第一个散列的索引,应检查每个(步长)th元素是否有空单元格。一旦发现空电池,钥匙应放在该电池中。例如,第一个散列索引为0,步长为2,然后索引为0、2、4。。应该检查一下。请记住,有时,探测需要绕到表的开头以查找空单元格

因此,根据所附图像,键16的步长为2。因此,从6开始,步长为2,下一个可用插槽是索引1,它是空闲的:)


如果在这种情况下找不到空单元格,则应使用新容量调整哈希表的大小。这称为重新灰化,这通常是一项成本高昂的操作,因为它需要重新灰化表中的所有元素。一旦表达到某个大小阈值,就应执行此操作。

双散列是解决冲突的一种方法(将多个键散列到一个索引中)。在双哈希中,将使用两个哈希函数;在发生冲突的情况下,将使用第二个哈希函数查找步长,在表中搜索空单元格以放置键时应使用该步长。此链接概述了可能的冲突解决方法

在您的情况下,在检查附加的图像后,很明显键16会与索引6中的某个其他键发生冲突,因此,您必须应用第二个哈希函数来确定步长。根据第一个散列的索引,应检查每个(步长)th元素是否有空单元格。一旦发现空电池,钥匙应放在该电池中。例如,第一个散列索引为0,步长为2,然后索引为0、2、4。。应该检查一下。请记住,有时,探测需要绕到表的开头以查找空单元格

因此,根据所附图像,键16的步长为2。因此,从6开始,步长为2,下一个可用插槽是索引1,它是空闲的:)


如果在这种情况下找不到空单元格,则应使用新容量调整哈希表的大小。这称为重新灰化,这通常是一项成本高昂的操作,因为它需要重新灰化表中的所有元素。一旦表格达到一定的大小阈值,就应该执行此操作。

以内联方式发布代码,而不是作为链接。在您的示例中,它必须以表格大小的模7添加。请参阅关于双散列的。内联发布代码,而不是作为链接。在您的示例中,它必须以表大小的模7添加。请参阅关于双哈希的。