这个嵌套循环的渐近运行时间是多少?

时间:2014-06-10 08:28:55

标签: algorithm big-o time-complexity

我试图弄清楚计算k ^ n值的函数的渐近运行时间,其中k和n是整数:

int Foo(k, n)
{
  exp = 1;                     //constant time
  for(int i=0; i<=n; i++){     //n times
    newexp = 0;                //constant time
    for(int j=0; j<=k; j++)    //n*k times
      newexp = newexp + exp;   //constant time
    exp = newexp;              //constant time
  }
  return(exp);                 //constant time
}

k n 变得足够大时,运行时间是否变为O(n + k)?

1 个答案:

答案 0 :(得分:0)

嵌套循环的复杂性计算为它们的产品而不是总和。如果n和k是输入(不是常数),那么复杂度是O(nk),如果其中一个是常数,则假设k是常数,则复杂度为O(n)