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)