当两者相互包含时,计算函数的时间复杂度?

时间:2014-12-24 18:36:32

标签: complexity-theory time-complexity

考虑以下C代码:

int foo(int x)
{
  if(x < 1) return 1;
  else return foo(x-1) + bar(x);
}

int bar(int x)
{
  if(x < 2) return 1;
  else return foo(x-1) + bar(x/2);
}

每个foobar函数的时间复杂度空间复杂度是什么?

1 个答案:

答案 0 :(得分:-2)

解决这个问题的方法是查看函数实际执行的操作。没有一般规则。你只需要打开你的大脑。

当你调用foo(1000)时,至少会调用多少个foo(999)? 至少会拨打多少来电foo(998)?

...

至少会拨打多少来电foo(501)? 至少会拨打多少来电foo(500)?