Algorithm 以下算法的运行时间?

Algorithm 以下算法的运行时间?,algorithm,runtime,time-complexity,complexity-theory,Algorithm,Runtime,Time Complexity,Complexity Theory,分治算法通过将大小为n的问题分解为2来解决问题 子问题,每个子问题的大小为n-1,并且需要O(n)个时间来组合它们的解决方案。这个算法的运行时间是多少 我不太确定如何构造这种循环关系并确定运行时是什么。下列关系正确吗 T(n)=2T(n-1)+O(n) 如果是这样的话,如何从中获取运行时 非常感谢你 是的,您的重复关系正确地描述了您的问题。为了使事情具体化,我们假设递归关系是:T(n)=2T(n-1)+n(即+n,而不是+O(n)) 然后,伸缩递推关系(假设T(0)=0) 检查是否正确: 2T(

分治算法通过将大小为n的问题分解为2来解决问题 子问题,每个子问题的大小为n-1,并且需要O(n)个时间来组合它们的解决方案。这个算法的运行时间是多少

我不太确定如何构造这种循环关系并确定运行时是什么。下列关系正确吗

T(n)=2T(n-1)+O(n)

如果是这样的话,如何从中获取运行时


非常感谢你

是的,您的重复关系正确地描述了您的问题。为了使事情具体化,我们假设递归关系是:
T(n)=2T(n-1)+n
(即
+n
,而不是
+O(n)

然后,伸缩递推关系(假设T(0)=0)

检查是否正确:

2T(n-1) + n
     = 2(2^n - (n-1) - 2) + n
     = (2^(n+1) - 2n + 2 - 4) + n
     = 2^(n+1) - n - 2
     = T(n)

是的,您的递归关系正确地描述了您的问题。为了使事情具体化,我们假设递归关系为:
T(n)=2T(n-1)+n
(即
+n
,而不是
+O(n)

然后,伸缩递推关系(假设T(0)=0)

检查是否正确:

2T(n-1) + n
     = 2(2^n - (n-1) - 2) + n
     = (2^(n+1) - 2n + 2 - 4) + n
     = 2^(n+1) - n - 2
     = T(n)