复杂度为nlgn的求幂算法

来源:互联网 发布:java中xml文件的作用 编辑:程序博客网 时间:2024/05/29 13:42

两种求幂算法


递归的方法, 代码如下:

递归

两种方法都利用分治法来实现。

double Pow1(double base, int exponent){    if (exponent == 0)        return 1;    if (exponent == 1)        return base;    if (exponent & 1)              return Pow1(base * base, exponent / 2) ;    else                            return Pow1(base * base, exponent / 2)* base;}

非递归实现:

int pow2(int base, int exponent){    if (1 == exponent) return base;    if (0 == exponent) return 1;    int res = 1;    while (exponent){        if (exponent&1)            res *= base;        exponent >>= 1;        base *= base;    }    return res;}

0 0
原创粉丝点击