找到这三个算法的运行时间

时间:2017-10-14 22:52:12

标签: algorithm math computer-science proof

嗨我很难显示T(n)这三种算法的运行时间。假设包括T(0)= 0。

1)我知道这个离Fibonacci很近,所以我知道它接近O(n)时间,但是很难证明: T(n)= T(n-1)+ T(n-2)+1

2)我觉得这很困难,但认为它大约是O(log log n): T(n)= T([sqrt(n)])+ n。 n大于或等于1. sqrt(n)是下限。

3)我相信这个大致为O(n * log log n): T(n)= 2T(n / 2)+(n /(log n))+ n。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

  

T(n)= T(n-1)+ T(n-2)+ 1

假设T(0)= 0且T(1)= a,对于某些常数a,我们注意到T(n) - T(n-1)= T(n-2)+ 1.即,函数的增长率由函数本身给出,这表明该函数具有指数增长。

设T'(n)= T(n)+ 1.然后T'(n)= T'(n-1)+ T'(n-2),通过上述递归关系,我们已经消除麻烦的常数。 T(n)和U(n)的常数因子为1,所以假设它们都是非递减的(它们是),那么它们将具有相同的渐近复杂度,尽管对于不同的常数n0。

为了表明T'(n)具有O(b ^ n)的渐近增长,我们需要一些基本情况,然后假设条件适用于所有n,例如k - 1,然后我们需要将其显示为k,即,c b ^(n-2)+ c b ^(n-1)&lt; ç b ^ N。我们可以通过c b ^(n-2)除以将其简化为1 + b <= b ^ 2。重新排列,我们得到b ^ 2 - b - 1&gt; 0;根是(1 + - sqrt(5))/ 2,我们必须抛弃负数,因为我们不能使用负数作为指数的基数。因此,对于b> =(1 + sqrt(5))/ 2,T'(n)可以是O(b ^ n)。类似的思想实验将表明,对于b <=(1 + sqrt(5))/ 2,T'(n)可以是Omega(b ^ n)。因此,对于b =(1 + sqrt(5))/ 2,T'(n)可以是Theta(b ^ n)。

通过归纳完成证明T(n)= O(b ^ n)留作练习。

  

T(n)= T([sqrt(n)])+ n

显然,假设边界条件要求T(n)是非负的,则T(n)至少是线性的。我们可能猜测T(n)是Theta(n)并试图证明它。基本情况:设T(0)= a,T(1)= b。然后T(2)= b + 2并且T(4)= b + 6.在两种情况下,c> = 1.5的选择将使T(n)<1。 CN。假设无论我们的c的固定值是否适用于所有n,包括k。我们必须证明T([sqrt(k + 1)])+(k + 1)&lt; = c *(k + 1)。我们知道来自归纳假设的T([sqrt(k + 1)])&lt; = c sqrt(k + 1)。所以T([sqrt(k + 1)])+(k + 1)&lt; = c sqrt(k + 1)+(k + 1),c sqrt(k + 1) +(k + 1)&lt; = c (k + 1)可以重写为cx + x ^ 2&lt; = cx ^ 2(x = sqrt(k + 1));除以x(OK,因为k> 1)我们得到c + x&lt; = cx,并且为c求解这个得到c> = x /(x-1)= sqrt(k + 1)/(sqrt)第(k + 1)-1)。这最终接近1,因此对于足够大的n,任何常数c> 1。 1会起作用。

通过修正以下几点使这个证据完全严格,这是一个练习:

  1. 确保足够的基本案例得到证实,以便所有假设都能
  2. 区分(a)k + 1是一个完美的正方形(因此[sqrt(k + 1)] = sqrt(k + 1))和(b)k + 1不是一个完美的正方形(因此是sqrt)的情况(k + 1) - 1&lt; [[sqrt(k + 1)]&lt; sqrt(k + 1))。
  3.   

    T(n)= 2T(n / 2)+(n /(log n))+ n

    该T(n)> 2T(n / 2)+ n,我们知道Mergesort运行时的递归关系,由Master定理为O(n log n),我们知道我们的复杂度不低于此。

    实际上,通过主定理:T(n)= 2T(n / 2)+(n /(log n))+ n = 2T(n / 2)+ n(1 + 1 /(log n) ),所以

    • a = 2
    • b = 2
    • f(n)= n(1 + 1 /(log n))是O(n)(对于n> 2,它总是小于2n)
    • f(n)= O(n)= O(n ^ log_2(2)* log ^ 0 n)

    我们在主定理2的情况下仍然存在,因此渐近界限与Mergesort,Theta(n log n)相同。