在本课程中,讲师将向您展示如何从递归关系转换为完成的工作的实际总和。我不理解的是,汇总中表示的每个级别O(n^d)
上的工作量在哪里持续不断。应该不是a(n/b)+O(n^d)
而不是aO(n/b)^d
吗?
答案 0 :(得分:0)
基于big-O
的定义,由于a
,b
和d
都是常数且大于1
,因此aO((n/b)^d))
和O(n^d)
是等效的。
答案 1 :(得分:0)
在图片的主定理中,每个级别的工作都没什么,只是将当前级别O(n)
的问题分解为a-th
下一个级别O(n/b)
的问题,然后合并他们起来。
在level 0
中,树中只有一个节点,此devide and combine
过程具有O(n^d)
的时间复杂度(根据您的情况所给定的知识,不同的算法具有不同的{{ 1}}时间复杂度。
在devide and combine
中,我们有一个level 1
节点,并且每个节点都有一个a-th
过程,其时间复杂度为devide and combine
,因此总计{{1} }在此级别上的工作为O((n/b)^d)
。
整个工作的总时间复杂度是每个级别的devide and combine
时间复杂度的总和。请记住,整个工作只不过是aO((n/b)^d)
。