有人可以清楚地向我解释如何回答这个问题,我一直在争论它吗?
问题说:
设X和Y为n个数的两个数组。下面的算法计算阵列上的各种表达式。分析每种算法的时间复杂度并找到:
i)算法的基本操作是什么?
ii)执行基本操作的次数是多少次?
iii)算法所属的类O(..)是什么?
X+Y
ALGORITHM addArrays(X[0..n-1],Y[0..n-1)
//Input: Two arrays X and Y of n numbers
//Output: Array S= X +Y
For i <--0 to n-1 do
S[i] <-- X[u] + Y[i]
Output S[0 . . n-1]
答案 0 :(得分:0)
i)添加两个输入数组并返回sum数组(S
)。这是循环内部的行,它在循环的每次迭代中添加每个输入数组的条目。
ii)n次,因为你只需要进行n次加法操作..
iii)O(n)因为你总共只经历了n个元素(2n次访问,但那是O(n)
)。