O(1)平均时间的n次运算是否均为平均O(n)?

时间:2013-07-03 06:42:04

标签: data-structures hash language-agnostic time-complexity

我正在学习数据结构考试,我正试图解决这个问题:

  

给定n个数字和数字Z的数组,在O(n)平均时间内找到x,y,如x + y = Z.

我的建议是将数组的内容移动到哈希表,并使用开放寻址执行以下操作:

对于每个数字A [i]在哈希表中搜索ZA [i](每个操作的平均值为O(1)。)最坏的情况是你将执行n次搜索,每次平均时间为O(1),这是O(n)平均。

我的分析是否正确?

1 个答案:

答案 0 :(得分:0)

假设您第二次遍历所有数组,是O(n)* O(1)(而不是之前所说的O(n)+ O(1))(用于哈希查找)平均时间),所以你在谈论O(n)复杂度的算法。