我试图找到复发的时间复杂度:
T(N)= 2T(N 1/2)+日志N
我非常接近的解决方案,但是,我遇到了一个障碍。 我需要解决:
N(1/2 K)= 1
对于k,以简化我的取代模式。 我不是在寻找答案的复发,只是为了解决k
。
我试图找到复发的时间复杂度:
T(N)= 2T(N 1/2)+日志N
我非常接近的解决方案,但是,我遇到了一个障碍。 我需要解决:
N(1/2 K)= 1
对于k,以简化我的取代模式。 我不是在寻找答案的复发,只是为了解决k
。
当你开始展开了递归,您可以:
这里同样的事情有一些额外的步骤:
现在,使用的边界条件的递归(2号选定为0和1没有任何意义),你会得到:
代k
回公式,你会得到:
这里有两个使用相同的想法递归。
这是不可能解决
N(1/2 K)= 1
对于k,因为如果n> 1,则n X> 1对于任何非零X。 你可以解决这个问题的唯一方法是,如果你捡到K,使得1 / K = 0,但这是不可能的。
但是,您可以解决这个问题:
N(1/2 K)= 2
首先,需要双方的日志:
(1/2 K)LG N = LG 2 = 1
接着,由2 k乘以两侧:
LG N = 2 k
最后,以日志更多的时间:
LG乐Ñ= K
因此,这种复发将停止一次K = LG乐ñ。
虽然你只问k的值,因为它已经有整整一年既然你问,我想我会指出,你可以做一个变量替换来解决这个问题。 尝试设置K = 2 N。 则K = LG N,所以你的复发
T(K)= 2T(K / 2)+ K
这解决(使用主定理)到T(K)=Θ(K日志k)和使用K = LG n时,总复发解决到Θ的事实(日志N日志log n)的。
希望这可以帮助!
登录的1个碱基什么,是0。
所以
N R个((1/2)^ k)的= 1
日志(N)(N ^((1/2)^ K))=的log(n)(1)
二分之一^ K = 0
登录(1/2)((1/2)^ K)=日志(1/2)(0)
日志的0基地什么是负无穷大..所以...
K = -infinity。
我认为你应该使用不同的“最后的数”为N,比1只是说...
花花公子如果它是快速排序,这是该公式:
对此的解决方案是O(n*log(n))
因为现在它是更小( T(n) ~ n^1/2
对于一些N
这意味着你的复杂度小于O(n*log(n))
。
尝试用归纳法证明您的绑定