繁体   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