大 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)
我对大 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)