递归关系的渐近分析

时间:2016-06-26 07:16:55

标签: math big-o asymptotic-complexity

我有一个递归关系来模拟未知算法的运行时,我需要找到该算法的运行时间的下限,或者找到上限和下限。

img

赦免粗糙的格局; Latex-to-image解析器我奇怪地使用数字方程:每个方程的数字是在数字所指的标记的下方和左侧

等式(1)和(2)是递归关系的一部分。

从等式(2)到(3),写出重复的几次迭代并观察形成的模式 - 然后使用新变量k推广它。

请注意,当等式(4)为真时,重复停止。

将等式(4)代入等式(3)以得到等式(5)。此外,使用对数更改基础公式以基数为二的方式获取所有日志。

从等式(5)到等式(6),我尝试用Big-oh分析对等式(5)进行一些观察。但坦率地说,这最后一步只是我的猜测。

假设等式(5) 是真的,我如何表达等式(5)的theta,omega或oh,以及 - 最重要的是 - 如何证明它?

我的想法是 - 我们有兴趣了解等式(5)的行为,因为n变得非常非常大。但是当n接近无穷大时,等式(5)的极限涉及负数的对数,这是一个死胡同,可能是错误的。

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

从指数到对数的转换是错误的。肯定存在一些k

(10/9)^k <= n <= (10/9)^(k+1).

应用二元对数

k*log2(10/9) <= log2(n) <= (k+1)*log2(10/9)

可以转换为k的边界,如

log2(n)/log2(10/9) - 1 <= k <= log2(n)/log2(10/9)

然后导致

T(n) around T(1)+c*log2(n)/log2(10/9)

仍然是以log2(n)的倍数在上下渐近地绑定,但是修正的公式是&#34;略微&#34;不同。