O(n)中数组元素乘法的算法

时间:2014-09-15 01:40:26

标签: arrays algorithm

我需要一个算法来计算O(n)算术运算中数组元素的乘法。

设a1,a2,a3 ......为整数序列。需要算法来计算

Σ_(1≤i

ai和aj的乘积的总和使得1 <1。 = i&lt; j&lt; = n

所需的复杂性为O(n)。

任何人都可以帮我吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

我们在这里使用两个整数。 以下公式的基础:

(a1 + a2) ^ 2 = a1^2 + a2^2 + 2*a1*a2

a1*a2 = ((a1 + a2)^2 - a1^2 - a2^2)/2.

相应的复合体是:O(n)+ O(1)+ O(n)+ O(1)= O(n)。

注意:(a1 + a2)^2的第一项不足(a1 + a2 + ... + an)^2