[英]Which one is having better complexity f1 = (n+m) +(n+m)log(n+m) or f2 = n*m
哪個函數f1
或f2
具有更好的時間復雜度,如果
f1 = (n + m) + (n + m) * log(n + m)
和
f2 = n * m
這取決於。 從中選出獲勝者
f1 = (n + m) + (n + m) * log(n + m)
f2 = n * m
我們應該知道m
和n
是什么; n
和m
之間的關系是什么。 例如
令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))
f1
和f2
具有相同的復雜性
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.