[英]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
增長速度快於n
和lgn
增長速度,而且常量值nlgn
,因此可以近似地忽略。
因此,其復雜度為O(nlgn)
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.