简体   繁体   English

log(n!) 和 log(n) 之间哪个增长率更高?

[英]Which has higher growth rate between log(n!) and log(n)?

I have just started learning and practicing algorithms and I read in a book that log(n!) has a faster growth rate than log(n).我刚刚开始学习和练习算法,我在一本书中读到 log(n!) 的增长率比 log(n) 快。

log(n!) = log((n)*(n-1)*.....(1))  
log(n!) = log(n)+log(n-1)+....+log(1)  <--- (i)

taking the worst case from (i), which is log(n)
therefore, log(n) should have same growth rate as log(n!)

Then how is it that log(n!) is better than log(n)?那么 log(n!) 怎么比 log(n) 好呢?

Lets try a different approach让我们尝试不同的方法

1. 1.

n! = n*(n-1)*(n-2)*...*1 n! = n*(n-1)*(n-2)*...*1 < n*n*n.....*n n! = n*(n-1)*(n-2)*...*1 < n*n*n.....*n

n! < n^n
log(n!) < log(n^n)
log(n!) < nlogn
** log(n!) = O(nlogn)

2. 2.

n! = 
n*(n-1)*(n-2)*....*n/2*(n/2-1)*...*1 > (n/2)*(n/2)*(n/2)*...*(n/2)
                                       ---------------------------
                                                  n/2 times

This is true because:这是真的,因为:

n > n/2
n-1 > n/2
n-2 > n/2
.
.
n/2 == n/2

So now we know: log(n!) > log((n/2)^(n/2)所以现在我们知道了: log(n!) > log((n/2)^(n/2)

log(n!) > n/2*log(n/2)
*** log(n!) = Ω(nlogn)

From ** and *** we get:*****我们得到:
log(n!) = θ(nlogn)

Hence log(n) = O(log(n!))因此log(n) = O(log(n!))

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM