带有Θ(log n)的java中的递归算法示例

时间:2014-02-10 16:15:14

标签: algorithm recursion code-analysis big-theta

我正在寻找很多天,我尝试了许多递归算法示例,但我找不到任何运行Θ( log n )运算时间的算法。
 您是否知道java中具有函数T(n) = Θ( log n )的任何递归算法。  其中T(n)是表示执行算法基本操作的时间的函数  任何帮助都非常感激。
谢谢!

1 个答案:

答案 0 :(得分:1)

作为一个例子,考虑找到整数e的最大整数指数m,使m e | n,对于某个整数n

findBiggestExponent(int n, int m)
{
    if(n % m == 0)
        return 1 + findBiggestExponent(n/m, m);
    else
        return 0;
}

显然e <= log n成立。由于递归算法将e计算为一个总和,因此算法的复杂度为O(log n)