algorithm - 计算/计算for循环内for循环的原始操作

标签 algorithm loops for-loop primitive operations

我有算法: 输入:X,一个大小为 n 的一维数值数组

Let A = an empty 1-D numerical array of size n
For i = 0 to n-1
    Let s = X[0]
    For j = 1 to i
       Let s = s + X[j]
    End For
    Let A[i] = s /(i+1)
End For

输出:一个 n 元素数组 A 的数字使得 A[i] 是元素 X[0],X[1], … ,X[i]

的平均值

我正在尝试编写 T(n) 公式并计算它,如何在 for 循环 i = 0 到 n-1 中编写 for 循环 J = 1 到 i。

什么是 T(n) 公式?

T(n) 是算法执行所需的时间。 t(n) 将用于计算大 O ( O(n) )。所以现在我有 T(n) = 2n+2(n-1)+5i(n-1)+6(n-1)+1。因为我计算了算法中的写入、读取和操作。不知道公式写好了没有。

最佳答案

我不是很清楚你的问题,但是还是

如何在for循环i = 0 to n-1中写for循环J = 1 to i?

你写循环的方式没问题,它会做你想做的..

什么是 T(n) 公式?

您可以注意到该算法将使第二个循环运行

0i=0,

1i=1时,

2i=2时, . . . 等等..

这将一直持续到 n-1,因此复杂度达到 0 + 1 + 2 + .... + n-1 的总和,即n*(n-1)/2。这是渐近 O(n^2)

关于algorithm - 计算/计算for循环内for循环的原始操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26532371/

相关文章:

java - For 循环在 if 情况下不运行

r - 使用 Multiple for 循环获取所有元素的组合

java - 如何将元素复制到没有大写字符的第二个数组?

算法 : martix traversal variation

java - 简单递归算法中终止路径的问题

c# - 如何获得霍夫曼码的长度

java - 在 Do while 循环验证中添加 Int 验证

python - 如果包含在循环中,字典是否会被清除

algorithm - 迷宫求解最优禁止左转算法

java - 将字符串添加到列表 - Java