复杂性和伪代码解释

时间:2015-04-13 19:04:30

标签: algorithm time-complexity

我们有以下伪代码

Input: An array A storing n ≥ 1 integers.
Output: The sum of the elements in A.
s←A[0]
for i←1 to n−1 do
s←s+A[i]
return s

首先,我在这样的伪代码中一直注意到这一点,为什么我们写for i←1 to n−1 do而不是i←1 to n dofor i←1 to n+1 do

其次,复杂性是O(n-1)所以O(n)..我理解为什么它是O(n),这就是我在看到代码时的想法,但为什么O(n-1)首先 ?

编辑:我想了解的是我们是如何获得O(n-1)

1 个答案:

答案 0 :(得分:1)

算法的复杂性是O(N)。对于计算机O(N + 1),O(N),O(N-1),O(N-2)几乎相同(特别是当N很大时)。所以每个人都接近O(N)。 他用i去N-1值,因为数组的起始索引是0.所以你有:

A [0],A [1] ....,A [N-1] --->数组中的N个元素。