题解 | #有序序列合并#

有序序列合并

https://www.nowcoder.com/practice/a9e943b0dab142759807d0cfb6863897

#include <stdio.h>

#define N 1010

int a[N];
int b[N];
int c[N];

// 归并
void merge(int a[], int b[], int n, int m)
{
    int k = 0, i = 0, j = 0;
    while (i < n && j < m)
    {
        if (a[i] < b[j])
            c[k ++ ] = a[i], i ++ ;
        else
            c[k ++ ] = b[j], j ++ ;
    }

    while (i < n) c[k ++ ] = a[i ++ ];
    while (j < m) c[k ++ ] = b[j ++ ];

}
int main()
{
    int n, m;
    scanf("%d %d", &n, &m);

    for (int i = 0; i < n; i ++ ) scanf("%d", &a[i]);
    for (int i = 0; i < m; i ++ ) scanf("%d", &b[i]);

    merge(a, b, n, m);

    for (int i = 0; i < n + m; i ++ ) printf("%d ", c[i]);
    return 0;
}

全部评论

相关推荐

一表renzha:手写数字识别就是一个作业而已
点赞 评论 收藏
分享
怎么起名字:早知道就不读书了,害得我送外卖还得扶眼镜
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务