首先化简:
log(n!) = log(1) + log(2) + ... + log(n-1) + log(n)
求上界:
log(1) + log(2) + ... + log(n) <= log(n) + log(n) + ... + log(n)
= n*log(n)
故 log(n!) = O(n*log(n))
求下界:
log(1) + ... + log(n/2) + ... + log(n) >= log(n/2) + ... + log(n)
= log(n/2) + log(n/2+1) + ... + log(n-1) + log(n)
>= log(n/2) + ... + log(n/2)
= n/2 * log(n/2)
故 log(n!) = θ(n*log)
上界等于下界,所以确界就是theta(n*log(n))
.