线性探测的主要问题是聚类,许多连续的元素形成组,开始需要时间来寻找空闲槽或搜索元素。
为什么组中的连续元素以及它如何影响找到空闲槽的时间?
最佳答案
散列函数的预期输出是将 100 个字符串随机分散到 200 个“pigeonslots”上。如果发生冲突,即已经占用的插槽,线性扫描将搜索下一个未占用的插槽,立即组成至少两个组(它也可以连接两个组)。当集群发生冲突时,线性探测会通过一个新键添加集群,其原始位置应该在集群中的任何位置。
许多快速求值的哈希函数都存在键分布不均的问题。当输入数据分布不均匀时,这两种现象相互强调,在线性探测的情况下可能会导致大量键聚类。实际上,这不仅会导致插入,还会搜索 O(n) 问题而不是 O(1)。
关于algorithm - 散列中的聚类(在碰撞中)是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45921311/