无法理解算法中的执行时间

Unable to understand execution time in an algorithm

我很难确定算法中每个步骤的执行时间。我只是无法理解其中的逻辑。

我们都知道在确定算法中的Big O或Theta之前,我们必须计算每一步的执行时间,然后根据执行时间计算顺序。

我发现计算顺序比 Big O 或 Theta 更容易,但我的问题是计算执行时间。

示例:

for i=0  to **n** 

dothisStep

它的执行时间是:(n+1),这使得它的顺序为 O(N)——这很简单,我明白为什么——我的问题是 "harder ones" .有时我应该得到 n(n+1)/2,有时是 n(n+1),但我就是无法理解 howwhy规则是什么

我认为在做这些问题时可以帮助你的是思考当 n 接近无穷大时会发生什么。在 n + 1 的示例中, + 1 相对于 n 变得非常微不足道。

您的另一个示例:n(n+1) - 同样,当 n 接近无穷大时添加 1 非常微不足道,因此我们删除 + 1。这留下 n(n)n^2.