簡體   English   中英

n log n是O(n)?

[英]n log n is O(n)?

我試圖解決這種情況

T(n)= 3 T(n / 2)+ n lg n ..

我已經得出它屬於主要定理案例2的解決方案,因為n lg n是O(n ^ 2)

但在參考解決方案手冊后,我注意到他們有這個解決方案

在此輸入圖像描述

解決方案說,對於0到0.58之間的e,n lg n = O(n ^(lg 3 - e))

所以這意味着n lg n是O(n)..這是對的嗎? 我錯過了什么嗎?

不是nlgn O(n ^ 2)?

這將更好地解釋事情 在此輸入圖像描述

n*log(n)不是O(n^2) 它被稱為准線性,它比O(n^2)生長得慢得多。 實際上n*log(n)小於多項式。

換一種說法:

O(n*log(n)) < O(n^k)

其中k > 1

在你的例子中:

3*T(2n) -> O(n^1.585)

由於O(n^1.585)是多項式並且支配O(n*log(n)) ,后一項下降所以最終復雜度僅為O(n^1.585)

n lg3不是O(n)。 它超過了O(n)......實際上,n上任何大於1的指數都會導致漸近時間比O(n)更長。 由於lg(3)約為1.58,只要從指數中減去小於.58,它就漸近地大於O(n)。

暫無
暫無

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

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