【发布时间】:2015-06-10 02:34:10
【问题描述】:
我已经搜索了每个地方,但我不明白为什么它是 O(1+a/2) 其中 a 是负载因子。谁能一步一步解释一下。
【问题讨论】:
标签: performance algorithm hashmap chaining asymptotic-complexity
我已经搜索了每个地方,但我不明白为什么它是 O(1+a/2) 其中 a 是负载因子。谁能一步一步解释一下。
【问题讨论】:
标签: performance algorithm hashmap chaining asymptotic-complexity
让哈希表中的元素数为n。
这意味着哈希表中有n/a 的单元格(/行)总数,每个单元格都包含一个元素列表。这是负载因子的定义。
因此,与每个此类单元格相关联的预期元素数量为n/(n/a) = a。
未排序列表中的线性搜索需要遍历一半的元素,直到平均找到正确的元素(我们假设它是一次成功的搜索),因此它需要遍历a/2 元素。
1 因素来自访问哈希表本身中的正确列表。
【讨论】: