确定算法的BIG-O复杂度

时间:2013-10-23 18:19:07

标签: algorithm big-o

我的一项家庭作业的解决方案刚刚发布,我提出了一个错误的问题。它与查找算法执行乘法运算(T(n))的最坏情况次数有关。

function power2n(n)
  counter = n
  product = 1
  while (counter > 0) {
    product = product * n * n
    counter = counter - 1
  }
  return product

根据我的老师的说法,最坏的情况是2n,但我不明白为什么......

1 个答案:

答案 0 :(得分:3)

观察变量counter。它是如何变化的?它最初是n,然后对于循环的每次迭代它递减1,所以我们知道循环将完全执行n次。

现在,执行了多少次乘法?

我们确定每个循环有2次乘法(n * n *乘积)。

总的来说,将执行n *(2)= 2n次乘法。在Big O表示法中,这仍然是O(n)