使用辅助结构查找数组是否在O(N)时间内具有重复项

时间:2018-01-06 11:37:27

标签: c arrays time duplicates

我想知道是否有可能在C中找到一个数组在O(N)时间内是否有重复,但是你可以使用辅助数据结构,比如哈希表。请记住,数据结构中的插入也适用于时间。谢谢你的关注。

1 个答案:

答案 0 :(得分:1)

是的,哈希表可能有效。

对于每个单词,您计算哈希值并尝试将其插入表格桶中。如果存储桶非空,则比较存储桶中的单词,如果新单词不存在,则将其添加到存储桶中,否则您会发现重复。

这意味着您只处理输入的单词一次,但是,您可能需要多次检查存储桶中的单词。

处理输入是O(N),处理桶是哈希表大小的函数。

大小为1的表将导致每个字检查N次,因此将是O(N 2 )。表大小为N将导致检查每个单词0次,因此将是O(N)。