@Sarvottam. I will try to explain Stirling's approxition.
Consider, the approximation $log(n!) = \Theta (log(n^n))$
We want to show that this is true for very large values of 'n'. Lets have n = $2^{100}$ = ${10}^{30}$
Now, log(n!) = log(n) + log(n-1) + ... + log(2) + log(1)
and, $log(n^n)$ = log(n) + log(n) + log(n)...'n' times
Note: We are adding the log terms
So, log(n) = 100 which means that $log(n^n)$ = 100*${10}^{30}$ = ${10}^{32}$
So, even for huge 'n', we are getting log(n) = 100.
Value of log(n!) is much more comparable to $log(n^n)$ since we have added the log terms.
But, we have considered the base as 2. If the base is 10 or something greater, then the difference between
log(n!) and $log(n^n)$ becomes much less. Hence, the Stirling's approximation.
But, $n^n$ is a huge figure as compared to n! and its a bad approximation because here, we are multiplying the terms(Consider multiplying the highest order terms manually and check the difference for both).
So, Never appoximate $n!$ by $n^n$ .