簡體   English   中英

哪個具有更好的復雜性 f1 = (n+m) +(n+m)log(n+m) 或 f2 = n*m

[英]Which one is having better complexity f1 = (n+m) +(n+m)log(n+m) or f2 = n*m

哪個函數f1f2具有更好的時間復雜度,如果

f1 = (n + m) + (n + m) * log(n + m) 

f2 = n * m

取決於 從中選出獲勝者

f1 = (n + m) + (n + m) * log(n + m) 
f2 = n * m

我們應該知道mn是什么; nm之間的關系是什么。 例如

m為常數:

f1 = O((n + m) + (n + m) * log(n + m)) = O(n + n * log(n)) = O(n * log(n))
f2 = O(n * m) = O(n)

f2更好。

m ~ n

f1 = O((n + m) + (n + m) * log(n + m)) = O(2 * n + 2 * n * log(2 * n)) = O(n * log(n))
f2 = O(n * m) = O(n * n) = O(n**2)

現在f1是更好的選擇

最后,讓m ~ log(n)

f1 = O((n + m) + (n + m) * log(n + m)) = O(n + log(n) + n*log(n + log(n))) = O(n * log(n))
f2 = O(n * m) = O(n * log(n)) = O(n * log(n))

f1f2具有相同的復雜性

暫無
暫無

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

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