There is one algorithmic improvement if $n$ is large and you want to express this number for example as a decimal or binary number without any rounding errors: Let's say you have $n$ equals one billion. You will do about 500 million multiplications, and if you do this in a straightforward way, you will multiply various numbers from 1 to a bit over 4 billion digits by some small number. Multiplying an $n$ digit number by a small number takes $O(n)$ steps, so your product all in all takes $O(n^2)$ steps.
It's faster if you calculate 250 million products of up to 9 digit numbers giving 250 million 18 digit numbers, then 125 million products of 18 digit numbers giving 36 digit numbers and so on, until finally you multiply two numbers of 2 billion digits each. Multiplying $k$ digit numbers can be done in $O (k \log k)$ instead of $O (k^2)$, and therefore the total work is $O (n \log^2 n)$.
A completely different improvement for large $n$ is to use the Stirling approximation $n! \approx n^n \mathrm{e}^{-n} (2\pi n)^{1/2}$, and substitute that in the formula in Yuval's comment. Obviously that gives an approximation only.