我很难确定算法中每个步骤的执行时间。我只是无法理解逻辑。
我们都知道在确定算法中的Big O或Theta之前,我们必须计算每一步的执行时间,然后根据执行时间计算顺序。
我发现计算订单比Big O或Theta更容易,但我的问题是计算执行时间。
示例:
for i=0 to **n**
dothisStep
这个的执行时间是:(n + 1)这使得它成为O(N)的顺序 - 这是一个简单的,我理解为什么 - 我的问题是“更难的”。有时我应该得到n(n + 1)/ 2,有时n(n + 1),但我无法理解如何或为什么!什么是规则?
答案 0 :(得分:1)
我认为在做这些问题时能帮到你的是想到当n接近无穷大时会发生什么。在n + 1
的示例中,+ 1
与n
相比变得非常微不足道。
你的另一个例子:n(n+1)
- 再次,当n接近无穷大时添加1
是非常微不足道的,所以我们放弃了+ 1
。这会留下n(n)
n^2
。