上周我接受了Top软件公司的采访。 在许多问题中,我遇到了这个问题。要使用散列表获取两个数组的公共元素,您将插入到散列表中。(假设没有散列冲突)。数组的大小比另一个大得多。我可以得到一些解释吗?我也想知道哈希冲突的情况。 谢谢。
答案 0 :(得分:1)
插入和查找的哈希平均情况是O(1),所以如果我们假设没有冲突并且它是完美的哈希那么两种情况的总体复杂度将是(更小和更大的数组的大小是'm'和分别为“M”
M x O(1) + m x O(1)
如果散列有很多冲突,并且在最坏的情况下插入和查找是O(n)那么最好使用较小的散列并将复杂性权重放在较小的散列上。
m x O(m) + M x O(m)