Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 程序的指数复杂性_Algorithm_Complexity Theory - Fatal编程技术网

Algorithm 程序的指数复杂性

Algorithm 程序的指数复杂性,algorithm,complexity-theory,Algorithm,Complexity Theory,我得到了一个程序,它分别依赖于大小为m和n的两个条目。如果Tm,n是问题的运行时间,则如下所示: Tm,n=Tm-1,n-1+Tm-1,n+Tm,n-1+C 对于给定的常数C 我可以证明时间复杂度是用ω2^minm,n表示的。然而,它似乎很复杂,Omega2^maxm,n刚刚向我证实了这一点,但我找不到正式的证明。谁有把戏 提前谢谢 首先,您应该定义,对于x,T0,x=Tx,0=0的所有值,您的递归停止-或者至少是T0,x=Tx,0=C 第二,时间复杂度是在Omega2^minm中,n显然是错的

我得到了一个程序,它分别依赖于大小为m和n的两个条目。如果Tm,n是问题的运行时间,则如下所示:

Tm,n=Tm-1,n-1+Tm-1,n+Tm,n-1+C

对于给定的常数C

我可以证明时间复杂度是用ω2^minm,n表示的。然而,它似乎很复杂,Omega2^maxm,n刚刚向我证实了这一点,但我找不到正式的证明。谁有把戏


提前谢谢

首先,您应该定义,对于x,T0,x=Tx,0=0的所有值,您的递归停止-或者至少是T0,x=Tx,0=C

第二,时间复杂度是在Omega2^minm中,n显然是错的。设置m=10000和n=1。现在试着向我证明复杂性与m=1和n=1是一样的。Tm-1,n-1和Tm,n-1部件消失得很快,但你仍然需要走Tm-1,n部件

第三,这个观察结果直接导致了2^maxm,n。尝试找出m和n的一些低值的递归步骤数。然后试着根据m和n来建立一个计算步骤数的公式。提示:斐波那契。当你有了这个公式,你就完成了。

从我的头顶: 我假设Tm,n的递归在到达T0,x或Tx,0时停止

造成复杂性的因素有三个:

系数1:Tm-1,n-1同时减少m和n,因此其长度直到m或n变为0是最小的,n步见下面的注释 系数2:Tm-1,n仅减小m,因此m=0之前的长度为m步。 系数3:Tm,n-1与上述相同,但直到n=0为n步。 总体复杂度是所有复杂度中较大的,因此它必须与最大

max( min(m,n) steps, m steps, n steps) = max(m,n)
rather than min(m,n).
我想你可以填写细节。常数C不起作用,或者更准确地说,与O1起作用,O1是所有复杂性中最低的


关于第1项的注释:该因子也有一个分支,m-1到0,n-1到0,因此严格来说,它的复杂性也将是maxm,n

Omegafx不是Ofx。如果Tm,n>=CONST*2^minm,n[对于足够高的条目]-这确实是ω。。。在您的示例中,min10000,1=1,实际上T1000,1>=CONST*2^1…实际上,在所有情况下,如果fn在Omega2^maxm,n中,它会自动暗示f在Omega2^minm,n中。但是谢谢你的回答:哎哟。我需要更多的咖啡。是的,我太习惯了Ofx,所以我错过了这个例子中的ω。