繁体   English   中英

合并排序和选择排序

[英]Merge Sort and Selection Sort

我无法为使用大于m的列表的递归Merge Sort调用的算法开发递归。 对于小于或等于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

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

  • 对于n > = m / 2,T( n )= 2 * T( n / 2)+ Theta( n
  • 对于n < m / 2,T( n )= Theta( n ^ 2)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM