nlogn 是否与 n^2logn^2 相同

Is nlogn same as n^2logn^2

当我们计算Big O时,nlogn是否与n^相同2logn^2 ?(基本上当n换成n方块)

我今天和一位同事讨论这个问题,他提到 nlogn 算法的复杂度在 n 变成 n^2.

这听起来不正确。征求专家意见。

不,这不是真的。您可以查看两个函数的比率并评估渐近极限

n^2*log(n^2) = 2*n^2*log(n)  (note that log(n^2) has the same oder as log(n))
ratio = [n*log(n)] / [2*n^2*log(n)] = 1/(2*n)

当n变大时,ratio趋于零,所以n*log(n)的阶数低于n^2*log(n^2)

您的朋友可能正在考虑 O(log n²) = O(log n) 这一事实。这意味着 O(n log n²) = O(n log n) 和 O(n² log n²) = O(n² log n);但它 not 意味着 O(n² log n²) = O(n log n).

不,这显然不正确。

可能你的朋友感到困惑的是,对数中的指数可以变成乘数:log n² = 2 log n.这意味着 O(log n²) = O(2 log n ),并且由于乘法常数在 Big-O 中被删除,O(2 log n) = O(log n).

根据经验,在 Big-O 分析中可以丢弃对数内的指数。不过,这不适用于常规的非对数平方。

  • O(log n²) = O(log n)
  • O(n²) ≠ O(n)
  • O(n² log n) ≠ O(n log n)
  • O(n² log n²) = O (n² log n) ≠ O(n log n)

大的我们可以接下面的订单哦

1

从这个n^2是n的上限之一。所以 n 和 n2 的大 oh 不能相同。