簡體   English   中英

你如何證明 n*log n 在 O(n) 中?

[英]How to you prove that n*log n is in O(n)?

我正在研究 Big-Oh,但我堅持證明部分。

問題是要證明

n*log n 在 O(n) 中。

鑒於有一個公式可以檢查它是否很大 - 哦,我試過了

F(n) <= c*g(n)

n*log n <= 1*n

然后我得到 log(n) <= 1 ,其中 n>n0。 因此,如果我將 100 替換為 n,結果將大於 1。

(我檢查了函數在 O(n) 中的答案)

你可以很容易地證明它不在O(nlogn)

假設這個說法是正確的,那么根據 大 O定義

有常數 N, c 使得對於所有 n > N > 0: nlogn <= c*n

nlogn <= c*n  since n > 0
logn <= c
n <= 2^c

但是對於n = max {2^c+1, N+1} - 以上不成立。 因此最初的假設是錯誤的,並且不存在這樣的常數。

如果沒有這樣的常數,根據大 O 符號的定義, nlogn不在O(n)

你不能證明 n*log n 是 O(n),因為它不是。

您的證明中至少有一個缺陷是 n * log n <= 1*n 不正確。

暫無
暫無

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

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