Algorithm 以下算法的运行时间?
分治算法通过将大小为n的问题分解为2来解决问题 子问题,每个子问题的大小为n-1,并且需要O(n)个时间来组合它们的解决方案。这个算法的运行时间是多少 我不太确定如何构造这种循环关系并确定运行时是什么。下列关系正确吗 T(n)=2T(n-1)+O(n) 如果是这样的话,如何从中获取运行时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(
非常感谢你 是的,您的重复关系正确地描述了您的问题。为了使事情具体化,我们假设递归关系是:
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)