Recursion 写一个递推方程
在编写合并排序的递推方程时,我不清楚第二项[T(n)=2T(n/2)+THETA(n)]是从哪里推导出来的 从Coursera类中可以看出,第二项是由于递归调用之外发生的事情。所以我的猜测是因为这是由于2个For循环,每个循环都会增加到n/2,所以总数会增加到n:Recursion 写一个递推方程,recursion,computer-science,recurrence,Recursion,Computer Science,Recurrence,在编写合并排序的递推方程时,我不清楚第二项[T(n)=2T(n/2)+THETA(n)]是从哪里推导出来的 从Coursera类中可以看出,第二项是由于递归调用之外发生的事情。所以我的猜测是因为这是由于2个For循环,每个循环都会增加到n/2,所以总数会增加到n: function mergesort(m) var list left, right if length(m) ≤ 1 return m else middle = le
function mergesort(m)
var list left, right
if length(m) ≤ 1
return m
else
middle = length(m) / 2
for each x in m up to middle
add x to left
for each x in m after middle
add x to right
left = mergesort(left)
right = mergesort(right)
result = merge(left, right)
return result
任何帮助都将不胜感激。
谢谢是的,没错。在输入列表的元素之间进行线性迭代,将每个元素分配到左或右子数组中。这就解释了重现期中的Θ(n)项 希望这有帮助