计算原始操作

时间:2017-07-08 21:18:02

标签: algorithm pseudocode primitive asymptotic-complexity

以下是我正在考虑的原始操作:

  • 为变量分配值
  • 调用方法
  • 执行算术运算
  • 比较两个数字
  • 关注对象

我非常了解如何将它们计算为正常的for循环,如下所示:

for (i=1; i<=n; i++) { ... }

这将是4 + n + n *(for循环体中的原始操作数),因为我们有:

  • 1用于将i初始化为1
  • n + 1用于比较i和n
  • 2 for i ++,因为这只是i = i + 1,它既是赋值又是加法
  • 然后我们重复身体n次,因此我们将身体乘以n

然而,我仍然坚持如何计算:

for (i=0; i<n; i+2) { ... }

对于比较,我认为这是1+ceil(n/2),但我如何摆脱ceil函数?

对于身体的重复,我在想floor((n+1)/2),但我不确定如何摆脱地板功能。

1 个答案:

答案 0 :(得分:0)

Algorithm prefixAvg2(X):
  input: An n-element array X
  output: An n-element array A of numbers such that A[i] is the average of elements X[0], ..., X[i]

1 Declare and initialize array A
2 a = 0
3 for i = 0 to n-1 do
4   a += X[i]
5   A[i] = a / (i+1)
6 return array A