【C】合并有序数组

#include <stdio.h>
int main(){
    int M,N;
    int a[]={1,3,5,6,8},b[]={1,2,5,7,8,9};
    M=sizeof(a)/sizeof(a[0]);
    N=sizeof(b)/sizeof(b[0]);
    int c[M+N];
    int i=0,j=0,k=0;
    //当有任何一个数组a/b遍历完成之后,跳出循环
    while(i<M&&j<N){
        if (a[i]<b[j]){
            c[k++]=a[i++];
        }   
        else{
            c[k++]=b[j++];
        }
    }
    //对a中剩余元素赋值给c
    while(i<M){
        c[k++]=a[i++];
    }
    //对b中剩余元素赋值给c
    while(j<N){
        c[k++]=b[j++];
    }
    //输出c
    for (int x=0;x<k;x++){
        printf("%d ",c[x]);
    }
    return 0;
}
//运行结果:1 1 2 3 5 5 6 7 8 8 9
© 版权声明
THE END
点赞11 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容