顾名思义,快速幂就是快速算底数的n次幂。
比如计算3的10此方,可以看到一下方法。
普通计算就是:3^10=3*3*3*3*3*3*3*3*3*3
可以变换为:3^10=(3*3)*(3*3)*(3*3)*(3*3)*(3*3)
也就是先对3自己进行平方,再求五次,就是3^10=(3*3)^5,这就相当于求了5次乘法。
最后可以变成先算3的平方,然后算其中五次,相当于只算了3次乘法。
根据这个过程,可以得到其时间复杂度为 o(log?N),与朴素的o(N)相比效率有了极大的提高。
其中用的是二分法。