数组中所有元素的总和小于O(n)

时间:2015-08-07 20:21:47

标签: c++ arrays

我尝试在循环中添加所有偶数位置和奇数位置然后添加两个以获得最终答案使得复杂性o(n / 2)但我需要更好的方法

2 个答案:

答案 0 :(得分:0)

您可以管理数组并在有更改时更新总和。这会将时间转移到修改操作,并且您在技术上计算(或不计算)零时间的总和。

答案 1 :(得分:0)

在一般情况下,你所知道的是有一个n个元素的数组,不可能在少于O(n)的时间内计算所有元素的总和。

但是,如果数组中的元素遵循模式,则可能存在更快的数学公式。

如果你知道在构建数组时需要计算数组的总和,你可以在构建数组时计算总和,但是这仍然会花费O(n)时间,只是在你的不同点上代码。

一般来说,某些事情根本不能比O(n)更快地完成。如果结果取决于你不知道的n个事物的值,那么在没有至少查看所有n个事物的值的情况下就无法计算它,这需要花费O(n)时间。