温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C语言中如何实现归并排序

发布时间:2021-07-02 17:39:47 来源:亿速云 阅读:155 作者:Leah 栏目:编程语言

C语言中如何实现归并排序,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

 C语言归并排序

 即将两个都升序(或降序)排列的数据序列合并成一个仍按原序排列的序列。

C语言中如何实现归并排序

上代码:

#include <stdio.h> 
#include <stdlib.h> 
#define m 6 
#define n 4 
int main() 
{  
  int a[m]={-3,6,19,26,68,100} ,b[n]={8,10,12,22}; 
  int i,j,k,c[m+n]; 
  int l ; 
  i=j=k=0; 
  printf("a数组的元素:\n"); 
  for(l = 0 ; l < m ; l++) 
  { 
    printf("%d ",a[l]);   
  } 
  printf("\nb数组的元素:\n"); 
  for(l = 0 ; l < n ; l++) 
  { 
    printf("%d ",b[l]);   
  } 
  printf("\n合并后的数组元素:\n"); 
  while(i<m && j<n)  /*将a、b数组中的较小数依次存放到c数组中*/ 
  {  
    if(a[i]<b[j])  
    { 
      c[k]=a[i];  
      i++; 
    } 
    else  
    { 
      c[k]=b[j];  
      j++; 
    } 
    k++; 
  } 
  while(i>=m && j<n)  /*若a中数据全部存放完毕,将b中余下的数全部存放到c中*/ 
  {  
    c[k]=b[j];  
    k++;  
    j++;  
  } 
  while(j>=n && i<m)  /*若b中数据全部存放完毕,将a中余下的数全部存放到c中*/ 
  {  
    c[k]=a[i];  
    k++;  
    i++;  
  } 
  for(i=0;i<m+n;i++)  
   printf("%d ",c[i]); 
  return 0 ; 
}

运行结果:

C语言中如何实现归并排序

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI