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

问题描述

我理解线性探测中的问题,因为后续的索引编制将导致元素簇。但是我不理解该语句The bigger the cluster gets,more it reduces the performance.,它如何降低散列的性能

解决方法

对于第一次插入空哈希表,我们保证不会遇到任何冲突。假设出于争论的目的,我们非常不幸-我们的第二次插入哈希值与我们的第一次插入相同,因此我们必须执行(很小)线性搜索才能找到下一个空闲时隙。对于n个时隙的表,此冲突的概率为1 / n。 现在,在另一个空白表中,我们彼此相邻。我们的下一次插入与该群集碰撞的几率是多少?不是第二次插入时的1 / n,而是现在的2 / n-机会增加了。散列到k插槽群集的几率是k / n,当这样做时,它们必须一直线性搜索整个群集直到结尾,这不仅浪费时间,而且增加了群集的长度! 问题在于该模式是自我增强的,并且当表满时,您的插入时间可能接近O(n)。