他们如何找到以下代码的下界?

时间:2019-03-04 10:09:15

标签: algorithm big-o lower-bound upperbound

procedure stars(n)
     for i = 1, . . . , n do
     print “∗” i many times

问题-使用Ω符号,下限恒星的运行时间以表明您的上限实际上是渐近紧的。

解决方案-为简单起见,假设n为偶数。我们降低了从n / 2到n的迭代过程中打印的星星数量:

SEE PICTURE For CLArity

我不明白为什么它们从n / 2变为n。我该如何做这个问题?

3 个答案:

答案 0 :(得分:2)

对于Omega,无论从哪里开始都没关系!下限只有一件事,那就是它必须小于分隔的和。解决方案只想找到和的下限,因为和在Theta(n^2)中(总和等于n(n+1)/2)。

答案 1 :(得分:2)

请注意,总和不是 j / 2 上的 ,而是 n / 2 上的。对于每个 n / 2≤j≤n n / 2≤j ,因此不等式成立,可能是 n = 2 的例外:完整的总和是3,第二个总和是2( not 2²/ 4 = 1:错误是从 n / 2 开始,而不是 n / 2 +1 。)
选择 n / 2 +1 )作为求和的下限,使得每个和数等于 n / 2 。

答案 2 :(得分:1)

请注意,当您从n/2n求和时,您要对更少的元素求和,因此该方程式正确。

这样做是为了最终简化表达式并找到明确的边界。