1. 伪代码描述:
Power(x, n):
    if n = 0:
        return 1
    if n = 1:
        return x
    if n < 0:
        return 1 / Power(x, -n)
    if n is even:
        half = Power(x, n / 2)
        return half * half
    else:
        half = Power(x, (n - 1) / 2)
        return half * half * x
  1. 关键操作是递归计算幂的一半。
  2. 运行时间T(n)的递推方程:
T(n) = T(n/2) + O(1)

其中O(1)表示常数时间的乘法操作。这是因为每次递归都将问题规模减半,直到问题规模为1。所以总共需要进行log(n)次递归调用,每次调用的时间复杂度为O(1)。所以总的时间复杂度为O(log(n))。

分治算法求解实数幂问题:时间复杂度O(log n)

原文地址: https://www.cveoy.top/t/topic/pxgY 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录