证明各种运行时有各种大O复杂性?

时间:2011-09-28 00:37:01

标签: math big-o

我如何证明以下内容:

  1. 10 n logn∈O(2n 2

  2. n log n + 40·2 n - 6n∈O(2 n

  3. 在第一篇中,我正在使用这个数学:

      

    10 n logn≤c·2n 2

         

    10 n 2 ≤c·2n 2 除以2

         

    5 n 2 ≤c·n 2

    我猜c = 5且n 0 = 1,但我不确定这是不是真的。

    在第二个中,我试图将左侧乘以2 n ,但这并没有结束。有没有人有任何建议?

1 个答案:

答案 0 :(得分:0)

对于第(1)部分,您要证明

  

10 n log n = O(2n 2

对于任何n≥1的

,可能会有所帮助
  

log n< Ñ

因此,你有那个

  

10 n logn≤10n 2 = 5(2n 2

因此,您可以得出10n log n = O(2n 2 )的结论,因为您可以选择n 0 = 1和c = 5并使用正式定义大O

对于(i)部分,您想要证明

  

n log n + 40·2 n - 6n = O(2 n

你可能想要在这里使用的一个有用的事实是,对于任何n≥4,n 2 ≤2 n 。因此,每当n≥4时,我们得到/ p>

  

n log n + 40·2 n - 6n≤nlog n + 40·2 n ≤40·2 n + n 2 ≤40·2 n + 2 n = 41·2 n

因此,如果选择n 0 = 4且c = 41,则可以使用big-O的形式定义来证明n log n + 40·2 n - 6n = O(2 n )。

希望这有帮助!