【发布时间】:2012-07-01 15:12:09
【问题描述】:
假设我们有一个大小为 m 的哈希表,并且在每个桶中我们存储一个大小为 p 的哈希表。 最坏情况/平均情况搜索复杂度是多少?
我倾向于说,由于计算哈希函数仍然是原子的,唯一最坏的情况是如果该值位于大小为 p 的哈希表中链表的末尾,那么 O(n)?
我不知道如何计算这种情况的平均情况,并希望得到任何指点!
【问题讨论】:
假设我们有一个大小为 m 的哈希表,并且在每个桶中我们存储一个大小为 p 的哈希表。 最坏情况/平均情况搜索复杂度是多少?
我倾向于说,由于计算哈希函数仍然是原子的,唯一最坏的情况是如果该值位于大小为 p 的哈希表中链表的末尾,那么 O(n)?
我不知道如何计算这种情况的平均情况,并希望得到任何指点!
【问题讨论】:
是的,如果通过添加到链表来解决冲突,在最坏的情况下它仍然是线性的。具有n 插槽在第一级和p 在第二级的两级哈希表与具有np 插槽的单级哈希表相同。您添加的所有元素最终都可能在同一个二级槽中,都被添加到同一个链表中,等等。根据这一观察,平均情况复杂度与np 的单级哈希表相同使用链表解决冲突的槽。
【讨论】: