Performance 链中哈希表中成功搜索的平均成本
我到处寻找这个,但我不明白为什么是O(1+a/2)Performance 链中哈希表中成功搜索的平均成本,performance,algorithm,hashmap,chaining,asymptotic-complexity,Performance,Algorithm,Hashmap,Chaining,Asymptotic Complexity,我到处寻找这个,但我不明白为什么是O(1+a/2) 其中a是荷载系数。有人能一步一步地解释一下吗。让哈希表中的元素数为n。 这意味着哈希表中有n/a单元格总数(/行),每个单元格包含一个元素列表。这是荷载系数的定义 因此,与每个这样的单元相关联的元素的预期数量是n/(n/a)=a。 未排序列表中的线性搜索需要遍历一半的元素,直到平均找到正确的元素(我们假设这是一次成功的搜索),因此它需要遍历A/2元素 1因子来自于访问哈希表本身中的正确列表。未排序列表中的线性搜索需要遍历一半的元素。这是我不明白
其中a是荷载系数。有人能一步一步地解释一下吗。让哈希表中的元素数为
n
。
这意味着哈希表中有
n/a
单元格总数(/行),每个单元格包含一个元素列表。这是荷载系数的定义
因此,与每个这样的单元相关联的元素的预期数量是n/(n/a)=a
。
未排序列表中的线性搜索需要遍历一半的元素,直到平均找到正确的元素(我们假设这是一次成功的搜索),因此它需要遍历
A/2
元素
1
因子来自于访问哈希表本身中的正确列表。未排序列表中的线性搜索需要遍历一半的元素。这是我不明白的。为什么会这样?可能是必需元素在列表的末尾,所以为什么我们只需要遍历一半?它是平均值:有时是第一个,有时是最后一个,平均是元素数的一半。@user4129542我省略了“average”一词,这在这里很重要。直觉上,它有50%的几率成为最后的元素,50%的几率成为第一。(更彻底的证明可以在0,…,U为U/2的证明中找到