递归关系中的总和在哪里?

时间:2018-12-28 13:10:48

标签: algorithm recurrence divide-and-conquer

在本课程中,讲师将向您展示如何从递归关系转换为完成的工作的实际总和。我不理解的是,汇总中表示的每个级别O(n^d)上的工作量在哪里持续不断。应该不是a(n/b)+O(n^d)而不是aO(n/b)^d吗? enter image description here

2 个答案:

答案 0 :(得分:0)

基于big-O的定义,由于abd都是常数且大于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)