确定算法中的步骤数

时间:2016-05-30 19:51:37

标签: algorithm time-complexity big-o pseudocode

我正在查看我的Data Structures and Algorithms笔记,并且遇到了以下关于时间复杂度和大O符号的示例:Example 1 Example 2 Example 3左侧列计算每行中执行的操作数。我不明白为什么第一个例子中几乎所有的线都在它们前面有2的倍数,而另外两个例子不是。显然这不会影响最终的 O(n),但我仍然想知道2的形成方式。

1 个答案:

答案 0 :(得分:1)

我只能找到一个解释:幻灯片作者的邋。。

在正确的分析中,必须解释在什么时候对什么输入执行什么类型的操作(例如第21页的this book)。如果没有这个,你甚至不能确定我们是否计算2个数字乘以1个运算或2个或其他什么?

这些幻灯片不一致。例如:

在slide1 currentMax = A[0]中进行2次操作。如果您将数组中的第0个元素作为1个操作并将其指定为另一个操作,则有意义。但是在{3} n的{​​{1}}次迭代中,需要进行n次操作。这意味着s = s + X[i]需要1次操作。也有点理由我们只增加一个计数器。

但它完全不一致,因为s = s + X[i]是2次操作并不合理,而a = X[0]只做1次。{/ p>