合并排序和选择排序

时间:2016-10-13 22:13:33

标签: algorithm sorting merge recurrence

我无法为使用递归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 
}

我认为复发是:

enter image description here

,其中T(2)= [m(m-1)] / 2

1 个答案:

答案 0 :(得分:0)

我认为更准确的公式如下:

  • T( n )= 2 * T( n / 2)+ Theta( n n &gt; = m / 2
  • T( n )= n 的Theta( n ^ 2)&lt; / 2