一维数组(基础)——有序序列合并

任务描述
编写一个程序,将两个已排序的序列合并为一个有序序列并输出。

输入输出要求
输入: 三行,第一行包含两个整数 m 和 n,分别表示两个序列的长度。第二行和第三行分别包含 m 和 n 个整数,表示两个序列的元素。
输出: 一行,输出合并后的有序序列

代码实现
cpp
#include <stdio.h>

int main() {
    int n, m;
    scanf(&quot;%d %d&quot;, &amp;n, &amp;m);
    int s1[n], s2[m];
    for (int i = 0; i < n; i++) {
        scanf(&quot;%d&quot;, &amp;s1[i]);
    }
    for (int i = 0; i < m; i++) {
        scanf(&quot;%d&quot;, &amp;s2[i]);
    }
    int d[n + m];
    int i = 0, j = 0, k = 0;
    while (i < n &amp;&amp; j < m) {
        if (s1[i] < s2[j]) {
            d[k++] = s1[i++];
        } else {
            d[k++] = s2[j++];
        }
    }
    while (i < n) {
        d[k++] = s1[i++];
    }
    while (j < m) {
        d[k++] = s2[j++];
    }
    for (int i = 0; i < n + m; i++) {
        printf(&quot;%d &quot;, d[i]);
    }
    return 0;
}

总结
代码实现了两个有序序列的合并。通过这次练习,我加深了对数组操作和双指针技巧的理解。同时,我也意识到在编写代码时,清晰的逻辑和良好的代码风格是非常重要的。
全部评论

相关推荐

喵_coding:项目太烂了外卖+点评啊 而且寒假实习差不多到时候了 hc没多少了 要实在想要找那只能投投大厂试试了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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