当计算 $x^n$ 时,利用常规的方法,我们是让 $x$ 相乘 $n$ 次。
1 |
|
利用快速幂快速求 $x^n$ 的原理是:
可以直接利用位操作(按位与、右移)来实现对$n$的操作
$\rightarrow$ 当$n$为奇数时,$n$的二进制最低位为1,则执行$res*x$操作
$\rightarrow$当$n$为偶数时,$n$的二进制最低位为0,则执行$x*x$操作(从最低位开始操作,所以是$x*x$,而不是$x^\frac{n}{2} x^\frac{n}{2}$)
$\rightarrow$ 每操作一次,$n$都减半,即$n$向右移一位
1 |
|
时间复杂度