首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于线性探测的二次探测

基于线性探测的二次探测
EN

Stack Overflow用户
提问于 2013-06-30 09:08:33
回答 3查看 14.6K关注 0票数 5

对于给定的哈希值,线性探测生成的索引如下:

hh+1h+2h+3等。

对于给定的哈希值,二次探测生成的索引如下:

hh+1h+4h+9等。

在线性的情况下会形成簇,但在二次的情况下则不会。

但是,当两个过程(方法)都需要采取相同数量的插入或搜索步骤时,二次算法比线性算法效率更高。谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-10-21 15:39:42

当您遇到空槽时,您将停止搜索表,因为您知道,如果您遇到空槽,那么您要查找的值将不会在哈希表中。由于减少了聚类,您将更有可能遇到空槽并停止搜索。此外,由于减少了聚类,在插入时,您将更有可能找到空槽,从而能够更快地搜索该值。

票数 8
EN

Stack Overflow用户

发布于 2016-04-10 17:06:53

效率取决于线性探测和二次探测形成的kinds of clustering

线性探测形成了主聚类,一旦形成,聚类越大,增长越快。这会严重降低性能。罗伯特·拉弗尔举了一个很好的例子:这就像有人在购物中心晕倒时聚集的人群。第一批人来是因为他们看到受害者倒下了;后来的人聚集在一起,因为他们想知道其他人都在看什么。人群增长得越多,吸引的人就越多。

其中,as二次探测形成辅助群集。这是防止集群形成的一种尝试。这个想法是探测更广泛分离的单元,而不是那些与主散列站点相邻的单元。按照这个类比,它试图阻止第一个到达的人,以避免形成人群。与主群集相比,辅助群集更加微妙,并且在性能方面没有那么严重。

票数 10
EN

Stack Overflow用户

发布于 2013-06-30 09:26:06

这是因为较少的集群形成。这些值将更加分散,因此在二次情况下,所需的平均探测数将会更少。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17386138

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档