Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.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_Recurrence_Divide And Conquer - Fatal编程技术网

Algorithm 在求和中,递归关系的加法在哪里?

Algorithm 在求和中,递归关系的加法在哪里?,algorithm,recurrence,divide-and-conquer,Algorithm,Recurrence,Divide And Conquer,在本课程中,讲师将展示如何从递归关系转换为所做工作的实际总和。我不明白的是,求和中表示的每一级的恒定工作量在哪里。它不应该是a(n/b)+O(n^d),而不是aO(n/b)^d? 根据big-O的定义,由于a、b和d是常数,大于1,因此aO((n/b)^d))和O(n^d)都是等价的。在你的图画的主定理中,在每一个层次上,工作都不是别的,而是划分当前层次O(n)问题分为a-th下一级O(n/b)问题,然后将它们组合起来 在0级中,我们在树中只有一个节点,这个设备和组合过程具有O(n^d)时间复杂

在本课程中,讲师将展示如何从递归关系转换为所做工作的实际总和。我不明白的是,求和中表示的每一级的恒定工作量在哪里。它不应该是
a(n/b)+O(n^d)
,而不是
aO(n/b)^d

根据
big-O
的定义,由于
a
b
d
是常数,大于
1
,因此
aO((n/b)^d))
O(n^d)
都是等价的。

在你的图画的主定理中,在每一个层次上,工作都不是别的,而是划分当前层次
O(n)
问题分为
a-th
下一级
O(n/b)
问题,然后将它们组合起来

0级
中,我们在树中只有一个节点,这个
设备和组合
过程具有
O(n^d)
时间复杂性(根据您的图片,给定的知识,不同的算法具有不同的
设备和组合
时间复杂性)

1级
中,我们有
a-th
节点,每个节点都有一个
devide and combine
过程,其时间复杂度为
O((n/b)^d)
,因此该级的
devide and combine
工作总量为
aO((n/b)^d)


整个工作的总时间复杂度,是每个级别的
devide和combine
时间复杂度之和。请记住,整个工作不是别的,而是一直在做<代码>分割和组合<代码>。

你能确切地说明你不理解的部分吗?它不应该是a(n/b)+O(n^d),而不是aO(n/b)^d吗?但是重复的内容是:<代码>a(n/b)+O(n^d)。那么,如果
d>1
它们在
O
的情况下是优等的,那么总工作量不应该用
aO(n/b)+O(n^d)
表示吗。他们都是O(n^d)。我想我没有正确地解释我的问题。我将重试:递归关系正在将O(n^d)添加到a(n/b)中。
O(n^d)+a(n/b)
如何等同于
aO((n/b)^d)
?从加法到乘法是怎样的?这个公式来自于主定理。我原以为它应该是通用的,但它不能表示不同的情况,比如
O(n)
O(n^2)
O(n^3)
,但它不能表示
O(lgn)
O(nlgn)
。我怀疑有些情况下,这些时间复杂。请参阅维基百科链接:。通用的应该是
f(n)