如果我有一个100万个整数的数组。 总结起来被认为是O(n)因为我必须执行n-1个添加操作。 正确吗?
答案 0 :(得分:4)
如果你可以在O(1)中添加两个元素,那么对n个元素求和需要O(n),是的。如果他们可能需要更长时间,那么没有。例如,如果所有元素都是无符号的32位整数但是你想要精确的和(不是和mod 2 32 )那么它可能和n·(2 32一样大) - 1)在这种情况下,求和将取O(n log n)。
答案 1 :(得分:3)
是。这是完全正确的。
当然,可能会出现特殊情况。某些方法可以使它更小,但这些方法的开销比添加更大。
例如,如果您知道值从1到n,则为O(1),因为您可以计算n *(n + 1)/ 2。但一般情况是O(n)。
答案 2 :(得分:0)
是的,因为用于求和的时间是元素数量n
的直接变化。