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