可以近似吗?

时间:2019-06-16 18:52:12

标签: algorithm time-complexity big-o

使用最小堆找到k个最大元素的时间复杂度为 O(k + (n-k)log k),如此处所述link,它可以近似为O((n-k) log k)吗?

由于O(N+Nlog(k))=O(Nlog(k))高于近似值,所以也适用吗?

1 个答案:

答案 0 :(得分:0)

不,您不能像那样简化它。这可以用一些 k 接近 n 的示例值来显示:

k = n

现在,复杂度定义为: O(n + 0log n) = O(n)。如果您忽略了总和的第一项,那么您将以 O(0)结尾,这显然是错误的。

k = n-1

我们得到: O((n-1)+ 1log(n-1)) = O(n + log(n)) = O (n)。没有第一项,您会得到 O(log(n)),这也是错误的。