如何计算程序的最坏情况(Big O)

时间:2013-06-01 07:46:07

标签: algorithm time-complexity

请原谅故意详述

这是一个小程序摘录:

for i=1 to n
  j= 0;
  while(j<=n);
  j=j+1;

如果我必须找到此代码的复杂性(Big O):

我将首先计算内循环将执行多少次,在这种情况下是n + 1次,因为从1到n,它是n次,因为j是0,所以它增加了while循环。所以while循环总共n + 1次。

外部for循环执行的次数是n次,因为从1到n,总计数为n。 因此,总数是n + 1 + n是2n + 1.

丢弃所有常数,这是大O(n)。

这是对的吗?我发现这个例子的网页说外环将运行n(n + 1)/ 2次。我不明白这一点。请帮忙!

1 个答案:

答案 0 :(得分:2)

没有。 对于每个值i正在获取(并且有n个),您运行while(内部)循环n+1次(j = 0,j = 1, ... J = N)。

因此,j=j+1n*(n+1)的总次数为O(n^2)