数据结构--运行时间中的对数

尽可能的减少重复的计算

1)二分搜索--log(N-1)+2

    条件:有序--数据稳定(即不允许插入操作和删除操作)的应用中非常有效

2)欧几里得算法--计算最大公因数-O(logN)--乘法次数最多2logN

long gcd(long m, long n)
{
    while (n != 0)
    {
        long rem = m % n;
        m = n;
        n = rem;
    }
    return m;
}

3)幂运算--一个整数的幂--乘法次数最多2logN

    N为偶数:XN=XN/2*XN/2

    N为奇数:XN=X(N-1)/2*X(N-1)/2*N

    运用递归思想

bool isEven(int n)
{
    return n % 2 == 0;
}
long pow(long x, int n)
{
    if (n == 0)
    {
        return 1;
    }
    if (n == 1)
    {
        return    x;
    }
    if (isEven(n))
    {
        return pow(x * x, n / 2);
    }
    else
    {
        return pow(x * x, n / 2) * x;
    }
}

原文地址:https://www.cnblogs.com/MissZhang-154/p/13329429.html