簡體   English   中英

在 T(n)=O(n^f(n)) 的情況下,我可以在 f(n) 上應用 big-O 的屬性嗎?

[英]Can I apply the properties of big-O on f(n) in the case of T(n)=O(n^f(n))?

假設我們有一個復雜度為 T(n)=O[n^f(n)] 的算法。 例如: T(n) = O[n^(n^2-n+1)]

我可以像在 T(n) 上一樣在 f(n) 上應用 big-O 的屬性嗎?

即,我可以寫: T(n) = O[n^(n^2)]而不是T(n) = O[n^(n^2-n+1)]嗎?

不,例如 O(1)=O(2),但 O(n^1) 是 O(n^2) 的真子集。 順便說一句,它甚至不適用於加法或乘法,因為 O 表示法不嚴格。

盡管您的情況有反例,但在以下條件下,您可以將f(n)替換為g(n) ,即T(n) = O(n^f(n))f(n) = O(g(n))

g(n) - f(n) > 0 for all n > 0

您可以查看您的示例,例如這種情況。 因此,如果條件成立,我們可以說T(n) = O(n^g(n))

此外,當f(n) = Theta(g(n))時,您的情況不正確,如@Mo B.示例。 順便說一句,基於上述條件,我們可以在T(n) = O(n^f(n))中將f(n)替換為g(n) ) 。

暫無
暫無

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

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