[算法B将问题分成大小为n-1的2个子问题,递归求解,然后在恒定时间内组合它们。
算法B的时间复杂度是多少?
尝试:
我可能无法使用主定理,但我认为T(n)= 2T(n-1)+ T(2)+ O(n-1)我不确定如何解决此问题...
以及尝试将调用成像为树的节点:它是一棵树(二叉树),其中两个分支的高度都为n-1
(因为大小为n-1
的递归调用),因此根节点的左侧分支的高度为n-1
,而右侧的分支则为高度为n-1
的分支。
现在,您有2棵完整的树,每个“路径”长n-1
,所以您有2棵树的高度为n-1
,将有2^(n-1)
个节点,因此调用总数为:
2^(n-1) + 2^(n-1) + 1
left branch right branch root node
= 2 * 2^(n-1) + 1
= 2^n (the +1 is negligible)