其中冲突解决方法是Separate chaining。我试图计算找到空槽的平均探针数。根据我的演讲幻灯片平均值是1.77,但我一直得到一个不同的答案。任何援助将不胜感激。
答案 0 :(得分:2)
所以,它的工作原理如下:这个想法是,如果你打了一个空桶,那么你就完成了。但是如果你遇到一个非空桶,你需要遍历链并在链的末尾找到一个空槽。
因此得到的平均探测命中率为:
(8 empty slots * (1 probe/empty slot)) / 13 total slots
+
(2 slots with one element *(2 probes for slot with one element) /13 total slots
+
(2 slots with two elements *(3 probes for slot with two elements) /13 total slots
+
(1 slots with four elements *(5 probes for slot with four elements) /13 total slots
= 8/13 + 4/13 + 6/13 + 5/13
= 23/13
= 1.77
答案 1 :(得分:0)
不确定为什么要在Separate Chaining方法中找出空槽的平均探针。在开放寻址方法中会引起关注。它取决于您的数据的性质,即在已占用的索引位置中获取哈希码%12的概率。
如果您只对给定数组的指标感兴趣:
大小为13的数组中有10个元素。所以:
找到空位的最小概率是3/13 - 每个10 元素落在不同的桶中
找到空位的最大概率是12/13(如果全部10 元素落在一个桶中)
对于给定的数据,它是8/13