【问题标题】:How to solve T(n)=4T(sqrt(n/2))+n^(3/2)如何求解 T(n)=4T(sqrt(n/2))+n^(3/2)
【发布时间】:2016-06-15 12:00:59
【问题描述】:

我想解决重复问题。一个问题分为 4 个子问题。每个子问题的大小是 n/2 的平方根。 4 个子问题的解结合函数 n^(3/2)。我正在寻找时间复杂度。

【问题讨论】:

  • 我投票结束这个问题,因为它不是真正的编程问题,而是数学或 CS 问题。
  • 另外,这听起来就像“这是我的作业,为我做”。如果你想问家庭作业问题,如果你证明你自己做过,他们会更好地被接受,并解释尽管你尽了最大的努力,但你在哪里被难住了。

标签: time-complexity complexity-theory


【解决方案1】:

时间函数为:

我们可以做这个替换:

因此:

现在时间函数的i + 1th 扩展给出了一个术语:

以及i的终止索引,假设T(0) = 0

所以时间复杂度由下式给出:

不幸的是,这是非分析性的(没有初等函数表示)。

然而,我们可以做一个极其粗略的近似,这几乎肯定会让所有数学爱好者大吃一惊。取总和两端的项:

假设m 很大,第一项比最后一项大很多。所以我们可以对这个系列做一个下限:


编辑:抱歉,总和从 i = 0 开始,包括最后一个 2^(1.5*m) 术语。但时间复杂度界限仍然相同。另外我应该使用大欧米茄符号而不是大O...

【讨论】:

  • 非常感谢。我使用主定理解决了它,我设法找到了大 - Θ (logn),但我不确定。
  • @trachanas 您是否考虑了 sqrt 因素?因为这使事情变得更复杂
  • @trachanas 好吧,我用 C 语言编写了它,并在 excel 中绘制了运行时数据——它不是一个对数项,但毕竟似乎是 O(n^1.5)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-10-03
  • 2021-05-13
  • 2016-04-04
  • 2011-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多