Hash 哈希表复杂性

Hash 哈希表复杂性,hash,time-complexity,Hash,Time Complexity,我试图找出哈希表的最佳、最差和平均情况: 哈希表大小为m,输入大小为n 在带有“平均”数据的散列电话簿中查找姓名,其中 存在碰撞,但线性探测是碰撞分辨率 计划 在使用线性探测解决冲突的哈希表中查找第k个目标项 在使用单独链接解决冲突的哈希表中查找第k个最大项 我的答案是: 1.最佳:1最差:m平均:m/2 2.最佳:1最差:m平均:m/2 3.最佳:1最差:1+n平均值:(1+1+n)/2=n 我认为在任何ADT(树、散列、数组)中对一个特定元素的任何case搜索总是1。因为,不知怎的,你神奇地

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

  • 在带有“平均”数据的散列电话簿中查找姓名,其中 存在碰撞,但线性探测是碰撞分辨率 计划
  • 在使用线性探测解决冲突的哈希表中查找第k个目标项
  • 在使用单独链接解决冲突的哈希表中查找第k个最大项
  • 我的答案是: 1.最佳:1最差:m平均:m/2 2.最佳:1最差:m平均:m/2 3.最佳:1最差:1+n平均值:(1+1+n)/2=n

    我认为在任何ADT(树、散列、数组)中对一个特定元素的任何case搜索总是1。因为,不知怎的,你神奇地在O(1)中找到了你需要的,我还认为平均情况就是最坏+最好/2。是这样吗

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

  • 最坏情况O(n)。这是输入大小,因为atmost n探测器可以存在,因为在达到此值之前,您不会踩到空闲位置。 平均情况和最佳情况O(1)
  • 如果第k个最大项指存在的第k个最大键

  • 最坏情况:O(kn)平均值,最佳情况:O(k)

  • 最坏情况:O(kn)平均值,最佳情况:O(k)