Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.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_Algorithm_Hashmap_Formula - Fatal编程技术网

Java 哈希映射中的平均跃点数

Java 哈希映射中的平均跃点数,java,algorithm,hashmap,formula,Java,Algorithm,Hashmap,Formula,我写了一个算法,实现了一个哈希映射来解决一个问题。我想知道是否有人能给我一些计算平均跳跃数的通用公式来找到一个条目?只是我报告的一部分:) 我已经创建了自己的散列码函数,我正在尝试度量它的质量 我所说的“啤酒花”是指: 对于冲突处理:如果两个或多个元素的哈希代码映射到哈希表中的同一个索引,我将在该索引处构建一个“链接列表”。因此,如果有4个元素映射到哈希表中的索引“i”,那么索引“i”包含4个元素的链表。从这个意义上说,“跳跃”就是在链表中“行走”或“跳跃” 本质上,映射的每个索引处都有另一个数

我写了一个算法,实现了一个哈希映射来解决一个问题。我想知道是否有人能给我一些计算平均跳跃数的通用公式来找到一个条目?只是我报告的一部分:) 我已经创建了自己的散列码函数,我正在尝试度量它的质量

我所说的“啤酒花”是指:

对于冲突处理:如果两个或多个元素的哈希代码映射到哈希表中的同一个索引,我将在该索引处构建一个“链接列表”。因此,如果有4个元素映射到哈希表中的索引“i”,那么索引“i”包含4个元素的链表。从这个意义上说,“跳跃”就是在链表中“行走”或“跳跃”


本质上,映射的每个索引处都有另一个数据结构。

性能将取决于哈希函数的质量以及数据的分布。选择一个具有代表性的大型数据集并测量性能。

性能将取决于哈希函数的质量以及数据的分布。选择一个具有代表性的大型数据集并测量性能。

请参阅以下文档:

这个实现为基本操作(get和put)提供了恒定的时间性能,假设哈希函数将元素正确地分散在存储桶中


换句话说,它取决于为存储在其中的项实现的哈希函数的质量。

请参阅以下文档:

这个实现为基本操作(get和put)提供了恒定的时间性能,假设哈希函数将元素正确地分散在存储桶中

换句话说,它取决于为存储在其中的项实现的哈希函数的质量


我正在计算我自己的哈希代码,并试图衡量它的质量

您需要做的是忽略哈希表,只需分析
int
类型范围内哈希值的分布。理想情况下,您希望散列值均匀分布。任何显著的峰值都代表潜在的问题

您需要考虑的另一件事是实际应用程序中使用的密钥的分布。例如,散列函数可能以一种不会产生太多分散的方式散列“相似”键。如果您的应用程序使用了大量类似的键,那么最终将导致大量冲突


如果您试图计算/估计/测量“跳跃”的数量,您会遇到诸如初始
HashMap
大小、键插入顺序、大小调整效果等因素的影响


我正在计算我自己的哈希代码,并试图衡量它的质量

您需要做的是忽略哈希表,只需分析
int
类型范围内哈希值的分布。理想情况下,您希望散列值均匀分布。任何显著的峰值都代表潜在的问题

您需要考虑的另一件事是实际应用程序中使用的密钥的分布。例如,散列函数可能以一种不会产生太多分散的方式散列“相似”键。如果您的应用程序使用了大量类似的键,那么最终将导致大量冲突



如果您试图计算/估计/测量“跳跃”的数量,您会遇到诸如初始
HashMap
大小、键插入顺序、,调整大小的效果等等。

取一个样本输入集S,计算S中每个元素的哈希值,并将计算出的值插入到集合H中。| S |/| H |是您应该期望的平均冲突。这取决于您自己的散列函数及其质量

取一个样本输入集S,计算S中每个元素的散列值,并将计算出的值插入一个集H。| S |/| H |是您应该期望的平均冲突。这取决于您自己的散列函数及其质量

完全明确地说,使用列表处理冲突的哈希表中沿列表的“跃点”数与表中的哈希冲突数相同,这将是表的
hash(item)%size
计算为所提供数据的相同值的次数。对于使用表中备用插槽的哈希表,已从表中删除的冲突项也会产生影响

例如,如果表大小以2的整数倍增加,但哈希函数只有较高位的差异,那么即使外部哈希的输出中没有冲突,表中也会有许多冲突。一种技术(Sun实现中使用的IIRC)是使用素数作为表大小,另一种技术是使用位混合函数来处理提供的哈希函数的输出,然后再将最低的n位作为索引


因此,冲突的数量取决于在数据中找到的提供的哈希函数的值的分布(如果它们都发生冲突,则表实现无法执行任何操作)、给定加载因子的表大小选择以及提供的哈希的输出如何转换为表索引

完全明确地说,使用列表处理冲突的哈希表中沿列表的“跃点”数与表中的哈希冲突数相同,这将是表的
hash(item)%size
计算为所提供数据的相同值的次数。对于使用表中备用插槽的哈希表,已从表中删除的冲突项也会产生影响

例如,如果表大小以2的整数倍增加,但哈希函数仅在较高的位上存在差异,那么即使您的