【问题标题】:Is it possible to simplify O(n! + n)? [closed]是否可以简化 O(n! + n)? [关闭]
【发布时间】:2015-01-22 22:49:50
【问题描述】:

我在阅读时间复杂度时遇到了时间复杂度 O(n! + n)。是否可以简化这一点?如果有,你会怎么做?

【问题讨论】:

  • 这几乎不是 stackoverflow 的问题。您可以在任何算法书籍中阅读有关复杂性的信息。尝试skiena介绍...
  • 我投票结束这个问题,因为它是关于数学的。试试 Math.SE。

标签: algorithm big-o time-complexity


【解决方案1】:

作为提示,对于 n ≥ 2,请注意

n! + n ≤ n! + n! = 2n!

还有那个

n! + n > n!

你能用这些观察找到更简单的表达 O(n! + n) 的方法吗?

希望这会有所帮助!

【讨论】:

    【解决方案2】:

    即使@templatetypedef 的回答是正确的,并尝试帮助您在特定情况下采取解决方案,我们也可以尝试为您提供更多工具以在实践中使用它。

    直接来自big O的定义你可以说:

    1. O(f(n)+g(n)) = O(f(n)) + O(g(n))
    2. O(k f(n)) = k O(f(n)) = O(f(n))
    3. 如果f(n)O(n) 那么f(n)O(n!)

    其中 1 和 2 直接来自 limsup 属性,而 3 是一个简单的练习。通过这3句话我们可以说:

    O(n! + n) = O(n!) + O(n) = 2 O(n!) = O(n!)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-05
      • 2010-12-09
      • 1970-01-01
      • 1970-01-01
      • 2014-05-03
      • 2014-05-07
      相关资源
      最近更新 更多