大 O 表示法:n*logn

BIg O Notation: n*logn

我对大 O 表示法感到困惑。

O(n^2) -> 它呈二次方增长,当你 double n 的大小时,操作数实际上会乘以 4

O(n*log(n)) -> 当你将 n 的大小加倍时,操作次数实际上会乘以多少???

2n*log (2n)  / n*log(n) = 2*log(2n)/log(n) =2*log_n (2n)

是这个因素吗?

O(big-oh)符号是渐近情况下的边界,虽然不是一个确切的数字,但它与操作次数有关。

如果你在 O(n log n) 处理算法中将 n 加倍。

log (2n) = log(n) + log(2) 所以你可以假设你会

2 (log(n)+log(2) / log(n))次初始运算。

或者正如@Jeremy所说2(1+log base n of 2)