哈希表复杂性

时间:2012-02-22 08:09:24

标签: hash time-complexity

我正在试图找出哈希表的最佳,最差和平均情况: 哈希表大小为m,输入n大小。

  1. 使用“平均”数据在散列电话簿中查找名称,其中 存在碰撞,但线性探测是碰撞解决方案 方案
  2. 在哈希表中查找使用线性探测进行冲突解决的第k个argest项目?
  3. 查找散列表中使用单独链接进行冲突解决的第k个最大项目?
  4. 我的回答: 1.最佳:1最差:m平均:m / 2 2.最佳:1最差:m平均:m / 2 3.最佳:1最差:1 + n平均:(1 + 1 + n)/ 2 = n?

    我在想任何情况下搜索任何ADT(树,哈希,数组)中的一个特定元素总是1.因为,不知何故你在O(1)找到了你需要的东西,我也认为平均情况是只有最差+最好/ 2。是吗?

    如果我的想法错了,请纠正我。

1 个答案:

答案 0 :(得分:0)

  1. 最坏情况O(n)。它是输入大小,因为在达到此值之前,您不会在自由位置上踩到n个探针。 平均案例和最佳案例O(1)。
  2. 如果第k个最大项目是指第k个最大的密钥。

    1. 最坏情况:O(kn)平均和最佳情况:O(k)。

    2. 最坏情况:O(kn)平均和最佳情况:O(k)。