算法的时间复杂度,将大小为(n)的问题分为2个大小为(n-1)的问题

问题描述 投票:0回答:1

[算法B将问题分成大小为n-1的2个子问题,递归求解,然后在恒定时间内组合它们。

算法B的时间复杂度是多少?

尝试:

我可能无法使用主定理,但我认为T(n)= 2T(n-1)+ T(2)+ O(n-1)我不确定如何解决此问题...

algorithm time-complexity divide-and-conquer
1个回答
0
投票

以及尝试将调用成像为树的节点:它是一棵树(二叉树),其中两个分支的高度都为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)
© www.soinside.com 2019 - 2024. All rights reserved.