Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.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_Master Theorem - Fatal编程技术网

Algorithm 不同大小子问题的主定理

Algorithm 不同大小子问题的主定理,algorithm,master-theorem,Algorithm,Master Theorem,通用表格中提到: 假设所有子问题的大小基本相同 在以下情况下应用此选项: 子问题的大小有很大不同 但是的标准有什么实质性的不同?例如,我有一个递归关系,如: T(n) = T(n/4) + T(3n/4) + cn (c is some constant) 我仍然可以使用主定理来解决这个关系(例如,将其近似为T(n)=2T(3n/4)+cn)?或者,换句话说,这些子问题的大小是“基本相同”还是已经“大不相同” 假设c是一个常数,你有:T(n)=T(n/4)+T(3n/4)+O(n) 用Akr

通用表格中提到:

假设所有子问题的大小基本相同

在以下情况下应用此选项:

子问题的大小有很大不同

但是的标准有什么实质性的不同?例如,我有一个递归关系,如:

T(n) = T(n/4) + T(3n/4) + cn 
(c is some constant)

我仍然可以使用主定理来解决这个关系(例如,将其近似为
T(n)=2T(3n/4)+cn
)?或者,换句话说,这些子问题的大小是“基本相同”还是已经“大不相同”

假设
c
是一个常数,你有:
T(n)=T(n/4)+T(3n/4)+O(n)

用Akra-Bazzi方法解决这个问题会得到
O(n^2)

通过假设
T(n)=2T(3n/4)+O(n)
得到
O(n^2.4094)
(实验四舍五入到4 dp)


因此,只要尝试一下,您就可以确认它们已经有了实质性的不同。

谢谢。然后我假设没有实质性的不同是当我有类似于
T(n)=T(n/2-1)+T(n/2+1)+cn的东西时,也就是说,当部分不精确,但只相差某个常数时。