簡體   English   中英

如何證明Big O符號

[英]How to prove Big O notation

在我的算法課程中,我們正在討論大O表示法,但我堅持證明了這個示例問題:

證明f(n) = 3n lg n + 10n + lg n + 20 = O(n lg n)

細節將不勝感激。

您需要證明的是對於某些M和X0:
M n lg n> = 3n lg n + 10n + lg n + 20,對於所有大於X0的n

對於M來說4很簡單

我確定您可以計算出上述不等式成立的一些x0,然后輕松地表明對於大於X0的所有n,它仍然為真

將4替換為4后,有助於簡化上述操作
(n-1)lg n> = 10n + 20

一旦任何n足夠大,就應該清楚lg n> 1,因此,如果n的任何增加,則將n增加1並將左邊增加1以上。

Big O表示法是一種漸近表示法 ,全都與案例的近似(最差,最佳和中級)有關。
在您的示例中, nlgn增長速度快於nlgn增長速度,而且常量值nlgn ,因此可以近似地忽略。
因此,其復雜度為O(nlgn)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM