【问题标题】:Order of growth for g(x)g(x) 的增长顺序
【发布时间】:2021-01-27 19:55:40
【问题描述】:
int f (int x)
{
      if (x < 1)  return 1;
      else return (f(x-1) + g(x));
}

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

这里如何计算g(x)的增长顺序?

【问题讨论】:

  • 这对我来说似乎是一个纯数学问题,所以我建议移动问题。

标签: function recursion time-complexity recurrence


【解决方案1】:

为了计算fg 的顺序,我们需要计算两者,最差的顺序就是答案,因为它们在两个函数中是相加的。例如在nn/2之间,n是最差的,所以顺序是n

只要f 被称为f(x-1),那么顺序就是n。在g 函数中,我们有g(x/2),这意味着g(x/2) 的顺序是n/2,因为每次x 除以2

所以在g 中,我们有订单n + n/2,最差的订单是n,所以g(x) 的订单” 的结果是n

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-31
    • 1970-01-01
    相关资源
    最近更新 更多