在步骤中,如何将某个算法的运行时间分析为大θ

时间:2018-03-18 05:33:25

标签: algorithm time-complexity

这个算法给我带来麻烦,我在网上找不到任何关于处理也受外部for循环影响的while循环的资源。是否有一个复杂的过程,或者你可以从循环看它是简单的(外环= n,内环= %%%%)?感谢您的任何帮助。

2 个答案:

答案 0 :(得分:0)

您是否听说过this issue运营商?如果a,b,n是实数,使得 n = b则log n b = a。内部循环告诉计算机,将数字j乘以2次(我们不确切地知道这个数字是什么,我们称之为x),这样在此之后,{{ 1}}应等于或超过j

在数学上,这可以写成n

解决2n > j * 2x ≥ nx2n/j > 2x ≥ n/jlog2(2n/j) > x ≥ log2(n/j)

log2(n/j) + 1 > x ≥ log2(n/j)从1增加到j时,n会减少。从这一点开始,我将在Logarithm中解决问题,您的工作是将其转换为Big-Theta符号

由于x是常量,因此可以省略。所以1,总是小于x = log2(n/j)。所以我们可以说内环的运行时间超出log2(n),这意味着整个算法的上限为O(log2n)

答案 1 :(得分:0)

编辑:为了更好的近似和一些更正,请阅读 Paul Hankin 以下有用的评论。谢谢他。

PS:Stirling's approximation