【问题标题】:Regarding time complexity, big O notation关于时间复杂度,大 O 表示法
【发布时间】:2016-01-30 14:04:17
【问题描述】:

假设 n1,n2 > k。 有没有

 O(k(n1+n2-k)) = O(k(max(n1,n2)) ?

还有

 O(n1+n2) = O(max(n1,n2)) ?

谢谢

【问题讨论】:

    标签: big-o time-complexity


    【解决方案1】:

    O(k(n1+n2-k)) = O(k(max(n1,n2)) 的说法是真的吗?

    我们知道k < min{n1,n2} - 因此:

    k(n1+n2-k) = k(max{n1,n2} + min{n1,n2} -k) > k(max{n1,n2})
    

    因此,证明O(k(max(n1,n2))O(k(n1+n2-k)) 的一个子集非常简单

    我们还需要显示相反的方式,这也很容易,因为2k*max{n1,n2}O(k(max(n1,n2)) 中,并且

    k(n1+n2-k) < k(max{n1,n2} + max{n1,n2}) -k) < 
               < k(max{n1,n2} + max{n1,n2}))
               = 2 k*max{n1,n2}
    

    所以,这个说法是正确的。

    O(n1+n2) = O(max(n1,n2)) 吗?

    这是正确的。从max{n1,n2} &lt;= n1+n2 &lt;= 2*max{n1,n2} 开始,我们在分析大 O 表示法时不关心常量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-08
      • 2014-05-29
      • 1970-01-01
      相关资源
      最近更新 更多