我无法为使用递归Merge Sort调用的算法开发递归,因为列表大小大于m。它使用选择排序列表大小小于或等于m。
这是我的伪代码:
proc merge_and_selection (A, p, r, m) {
if (p <= r) then
q = (p + r)/2
if r - p > m then
merge_and_selection(A, p, q - 1, m)
merge_and_selection(A, q + 1, r, m)
else
selection_sort(A, p, q - 1)
selection_sort(A, q + 1, r)
end
merge(A, p, q, r)
end if
}
我认为复发是:
,其中T(2)= [m(m-1)] / 2
答案 0 :(得分:0)
我认为更准确的公式如下: