您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
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 ;
}运行结果:

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。