当前位置: 首页 > 知识库问答 >
问题:

线性探测中的聚类如何影响搜索时间

冀萧迟
2023-03-14

我理解线性探测中的问题,即由于后续的索引,会出现元素簇。但是我不明白这句话集群越大,性能就越差 它如何降低哈希的性能?


共有1个答案

唐繁
2023-03-14

对于第一次插入空哈希表,我们保证不会遇到任何冲突。为了论证起见,假设我们非常不走运——我们的第二次插入哈希与第一次插入哈希相同,我们必须执行(非常小的)线性搜索以找到下一个空闲的时隙。对于n个插槽的表,发生碰撞的概率为1/n。现在我们有两个人在一张空桌子上挨着坐。我们的下一次插入与这个星团碰撞的几率是多少?不是第二次插入时的1/n,而是现在的2/n——几率增加了。散列到k-slot集群的概率是k/n,当它们这样做时,它们必须沿着集群一直线性搜索到最后,这不仅浪费时间,还增加了集群的长度!问题在于,该模式是自增强的,当表满时,插入时间可能接近O(n)。

 类似资料:
  • 我正在为学院实现DFS和边缘分类(基于本文提供的代码:https://courses.csail.mit.edu/6.006/fall11/rec/rec14.pdf)。 斜体字母只是顶点的名称,而顶点内部的数字分别是发现时间和完成时间。边缘分为后、前或交叉;其他都是树边。 正如您所看到的,该图是按照以下顺序访问的:首先是,然后是它的邻居(在DFS之后);当没有更多可访问的邻居时,访问开始于。 为

  • 问题内容: 我正在使用SQL Server2008。DateTime列“ DateFrom”上有一个非唯一的非聚集索引。我正在根据此列搜索表。我只是想知道 CONVERT()函数 对INDEX的影响,请参见以下内容: 我已经检查并发现没有区别。但是我在想,既然该列是CONVERTED的,那么SQL Server可能不会使用该索引,这是正确的吗? 如果这不是一个适当的问题,请原谅我。 问题答案: 通

  • 问题内容: 我正在对ElasticSearch的单节点集群进行一些基准测试。 我面对这样的情况,更多的分片将至少在单个节点中降低索引性能(延迟和吞吐量) 这些是我的一些数字: 使用1个分片进行索引,每分钟索引+ 6K文档 索引5个分片,每分钟索引+ 3K文档 索引20个分片,每分钟索引+ 1K文档 使用批量API的结果相同。所以我想知道这是什么关系,为什么会这样呢? 注意:我没有资源问题!资源是免

  • 有没有办法将弹性搜索GeoHash转换为具有适当缩放级别的bing地图图钉? https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-geohashgrid-aggregation.html

  • 我试图解决这个问题,我需要实现线性探测。 给定一个整数数组和一个哈希表大小。使用线性探测将数组元素填充到哈希表中以处理冲突。 例1: 例2: 您的任务: 您不需要读取输入或打印任何内容。 您的任务是完成函数linearProbing(),该函数将空哈希表(hash)、哈希表大小(hashSize)、整数数组arr[]及其大小N作为输入,并将数组arr[]的所有元素插入给定的哈希表中。 哈希表的空单

  • 问题内容: 在Java项目中,我正在使用第三方库,该第三方库通过 我希望能够从我的应用程序中影响此方法的搜索路径,以便用户无需在命令行上指定正确的java.library.path值(此值取决于当前操作系统)和建筑)。例如在Windows上,我想将其设置为“ lib / native / windows”,在Linux 32bit上,将其设置为“ lib / native / linux32”等。