我有一个函数在n个浮点数列表上执行Mergesort,然后查找并返回一个最大元素。
我知道Mergesort的复杂性是O(n*log(n))
,我知道max(list)的复杂性是O(n)
。因此,考虑到这一点,我同时拥有O(n*log(n))
和O(n)
。据我所知,大O符号采用增长最快的多项式并忽略常量。因为在这种情况下,n是低阶项,这是否意味着此函数具有复杂度O(n*log(n))
?或者此规则仅适用于多项式?
答案 0 :(得分:3)
Big O表示法描述了当参数趋向特定值或无穷大时函数的限制行为。
所以是的,如果你有一个多项式,只有最重要的事情是重要的,而常数和因子并不重要。例如,复杂度为4n²+ 999n + 5的函数为O(n²)。
在你的情况下,是的,这意味着它只是O(n log n)。