码迷,mamicode.com
首页 > 编程语言 > 详细

/*归并排序

时间:2019-02-19 00:43:31      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:main   依次   clu   归并排序   argv   print   stdio.h   def   printf   

/*归并排序
    即将两个都升序(或降序)排列的数据合并
成一个仍案原序列排列的序列。
例子1、有一个含有6个数据升序序列和一个含有4个数据
的升序序列,将二者合并成一个含有10个数据的额升序序列
*/
#include<stdio.h>
#define m 6
#define n 4
int main(int argc,char const *argv[])
{
    int a[m]={-3,6,19,26,68,100};
    int b[n]={8,10,12,22};
    int i,j,k,c[m+n];
    i=j=k=0;
    while(i<m&&j<n)//将a、b数组中较小的数依次存放到c数组中
    {
        if(a[i]<b[i])
        {
            c[k]=a[i];
            i++;
        }else
        {
            c[k]=b[j];
            j++;
        }
        k++;
        while(i>=m&&j<n)
        {
            c[k]=b[i];
            k++;
            j++;
        }
        while(j>=n&&i<m)
        {
            c[k]=a[i];
            k++;
            i++;
        }
    }
    for(i=0;i<m+n;i++)
    {
        printf("%d ",c[i]);
    }
    return 0;
}
//-3 6 8 10 12 22 19 26 68 100

/*归并排序

标签:main   依次   clu   归并排序   argv   print   stdio.h   def   printf   

原文地址:https://www.cnblogs.com/lijianmin6/p/10398657.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!