c语言- 有序序列合并

题目 :

代码:

cpp 复制代码
#define _CRT_SECURE_NO_WARNINGS
#define MAX 1000
#include <stdio.h>

int main() {
    int n, m;
    // 1. 读取两个序列的长度n和m
    scanf("%d %d", &n, &m);

    // 2. 定义并读取两个有序数组
    int a[MAX] = { 0 }, b[MAX] = { 0 };
    for (int i = 0; i < n; i++) {
        scanf("%d", &a[i]);
    }
    for (int i = 0; i < m; i++) {
        scanf("%d", &b[i]);
    }

    // 3. 双指针法合并两个有序数组
    int i = 0, j = 0;
    while (i < n && j < m) {
        if (a[i] <= b[j]) {
            printf("%d ", a[i++]);
        }
        else {
            printf("%d ", b[j++]);
        }
    }

    // 4. 处理剩余元素
    while (i < n) {
        printf("%d ", a[i++]);
    }
    while (j < m) {
        printf("%d ", b[j++]);
    }

    return 0;
}

思路:

相关推荐
雨季6662 小时前
Flutter for OpenHarmony 入门实践:从 Scaffold 到 Container 的三段式布局构建
开发语言·javascript·flutter
Dreamy smile2 小时前
JavaScript 继承与 this 指向操作详解
开发语言·javascript·原型模式
副露のmagic2 小时前
更弱智的算法学习 day53
开发语言·python
HellowAmy2 小时前
我的C++规范 - 回调的设想
开发语言·c++·代码规范
Java程序员威哥2 小时前
SpringBoot多环境配置实战:从基础用法到源码解析与生产避坑
java·开发语言·网络·spring boot·后端·python·spring
代码无bug抓狂人2 小时前
前缀和算法和单调队列算法(经典例题)
数据结构·算法
mudtools2 小时前
C#中基于Word COM组件的数学公式排版实践
开发语言·c#·word
leaves falling2 小时前
BC68 X形图案
数据结构·算法
Q741_1472 小时前
C++ 优先级队列 大小堆 模拟 力扣 1046. 最后一块石头的重量 每日一题
开发语言·c++·算法·leetcode·优先级队列·