计算数组中所有对和平方和的有效解决方案是什么?
What is the efficient solution for computing the sum of all pair sum square in an array?
给定一个数组
我们需要计算
。
time-efficient 解的 运行 时间是多少?
我认为方程time-efficient解的运行时间
![S=\sum_{i = 0}^{n-1}\sum_{j=0}^{n-1}\left((A[i] + A[j]) \times (A[i] + A[j])\right)](https://latex.codecogs.com/gif.latex?S=%5Csum_%7Bi&space;=&space;0%7D%5E%7Bn-1%7D%5Csum_%7Bj=0%7D%5E%7Bn-1%7D%5Cleft((A[i]&space;+&space;A[j])&space;%5Ctimes&space;(A[i]&space;+&space;A[j])%5Cright))
将是 n^2
(二次时间)但解是 n(线性时间).
有人能给我解释一下吗n(线性时间)?
只是你需要重写公式。内部公式是
。
因此,你可以取出
来自内部总和:
![\sum_{i = 0}^{n-1}\left(n \times A[i] + \sum_{j = 0}^{n-1}\left(A[j]^2\right) + 2A[i] \times \sum_{j = 0}^{n-1}\left(A[j]\right)\right)](https://latex.codecogs.com/gif.latex?S=%5Csum_%7Bi&space;=&space;0%7D%5E%7Bn-1%7D%5Cleft(n&space;%5Ctimes&space;A[i]%5E2&space;+&space;%5Csum_%7Bj&space;=&space;0%7D%5E%7Bn-1%7D%5Cleft(A[j]%5E2%5Cright)&space;+&space;2A[i]&space;%5Ctimes&space;%5Csum_%7Bj&space;=&space;0%7D%5E%7Bn-1%7D%5Cleft(A[j]%5Cright)%5Cright))
现在我们只需要计算
,
,
和
。
由于每个都可以在 O(n)
中完成,我们可以在 O(n)
.
中找到最终结果
请注意,您可以在 O(n^2)
中通过两个嵌套循环(如您所说)来完成。但它没有优化。您也可以在矩阵乘法 (Strassen algorihtm) 中找到类似的技术。
给定一个数组
我们需要计算
。
time-efficient 解的 运行 时间是多少?
我认为方程time-efficient解的运行时间
将是 n^2
(二次时间)但解是 n(线性时间).
有人能给我解释一下吗n(线性时间)?
只是你需要重写公式。内部公式是
。
因此,你可以取出
来自内部总和:
现在我们只需要计算
,
,
和
。
由于每个都可以在
O(n)
中完成,我们可以在 O(n)
.
请注意,您可以在 O(n^2)
中通过两个嵌套循环(如您所说)来完成。但它没有优化。您也可以在矩阵乘法 (Strassen algorihtm) 中找到类似的技术。