我有算法: 输入:X,大小为n的1-D数值数组
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)将用于计算big-O(O(n))。所以此刻我有T(n)= 2n + 2(n-1)+ 5i(n-1)+6(n-1)+1。因为我计算了算法中的写入,读取和操作。我不知道公式是否写入。
答案 0 :(得分:0)
我不清楚你的问题,但仍然
如何在for循环中将for循环J = 1写入i = 0到n-1?
你编写循环的方式还可以,它会做你想要的......
什么是T(n)公式?
您可以注意到该算法将使第二个循环运行
0
时 i=0
次,
1
时i=1
,
2
时间i=2
,
。
。
。
等等..
这将一直持续到n-1
,因此复杂性达到0 + 1 + 2 + .... + n-1
的总和n*(n-1)/2
。这是asymtotically O(n^2)