我们能说O(K + (N-K)logK)
等于O(K + N logK)
的{{1}}吗?
答案 0 :(得分:1)
是的,因为从(N-K) logK
开始,给定您的约束,在最坏的情况下N logK
最多1 <= K <= N
。
答案 1 :(得分:1)
不完全是。
如果它们相等,则O(k +(n-k)log k)中的每个函数也都在O(k + n log k)中,反之亦然。
让f(n,k)= n log k
此函数肯定在O(k + n log k)中,但是不是在O(k +(n-k)log k)中。
让g(n,k)= k +(n-k)log k
然后,随着x接近无穷大,f(x,x)/ g(x,x)无限增长,因为:
f(x,x)/ g(x,x)
=(x log x)/ x
=日志x
有关多个变量,请参见big-O表示法的定义:http://mathwiki.cs.ut.ee/asymptotics/04_multiple_variables
Wikipedia提供了相同的信息,但是使用了不太易懂的符号: https://en.wikipedia.org/wiki/Big_O_notation#Multiple_variables
答案 2 :(得分:1)
简短的答案是它们不相等,这取决于k
的值。如果k
等于N
,则第一复杂度为O(N)
,第二复杂度为O(N + Nlog N)
,其等效于O(NlogN)
。但是,O(N)
不等于O(N log N)
。
此外,如果函数位于O(K + (N-K) log K)
中,并且位于O(K + N log K)
中(肯定是每个正数K
的存在),那么这一点就很简单。