当前位置:   article > 正文

(C++)数据结构排序---二路归并排序_c++二路归并排序算法

c++二路归并排序算法

二路归并排基本思想:把拥有n个数据的数组看做n个有序序列,然后两两归并,得到n/2组有序序列;重复上述操作,达到n/4组有序序列;重复上述操作,直到n个数据均为有序。

平均情况的时间复杂度          最好情况的时间复杂度               最坏情况的时间复杂度         空间复杂度

       O(nlog2(n))                         O(nlog2(n))                             O(nlog2(n))                      O(n)

数据存储在a[1]~a[n],两个相邻有序序列归并一次的代码实现

  1. void Merge(Type a[],Type b[],int s,int m,int t)
  2. {
  3. int i=s,j=m+1,k=s;
  4. while(i<=m&&j<=t)
  5. {
  6. if(a[i]<=a[j])
  7. {
  8. b[k++]=a[i++];
  9. }
  10. else
  11. {
  12. b[k++]=a[j++];
  13. }
  14. }
  15. if(
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/824461
推荐阅读
相关标签
  

闽ICP备14008679号