首页 > 编程 > C > 正文

C语言开发之归并排序详解及实例

2020-01-26 14:13:03
字体:
来源:转载
供稿:网友

 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 ; } 

运行结果:

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选