大年初二快乐,但是关于数组的小反思(写代码写乐了

1.故事的起因
这样一道关于合并数组的题:https://ac.nowcoder.com/acm/contest/93951/P
写它之前做了一道在数组中插入一个数的题,其中运用到了关于移位,寻找插入位置的各种东西,如下
#include <stdio.h>

#define MAXN 51  // 考虑插入一个数后数组长度最大为 N + 1

int main() {
    int N;
    // 读取原序列的长度
    scanf("%d", &N);

    int arr[MAXN];
    // 读取升序排列的整数序列
    for (int i = 0; i < N; i++) {
        scanf("%d", &arr[i]);
    }

    int numToInsert;
    // 读取要插入的整数
    scanf("%d", &numToInsert);

    int i;
    // 找到插入位置
    for (i = N - 1; i >= 0 && arr[i] > numToInsert; i--) {
        arr[i + 1] = arr[i];  // 将比插入数大的元素后移一位
    }
    arr[i + 1] = numToInsert;  // 插入新数

    // 输出插入新数后的有序序列
    for (i = 0; i < N; i++) {
        printf("%d ", arr[i]);
    }
    printf("%d\n", arr[N]);

    return 0;
}
然后呢,就导致我对这个合并数组产生了很大的恐惧:这得对两个数组同时遍历吧,这我得移多少次位置,反复比较多少次啊。。。
2.为什么会乐
于是上网学习怎么做这道题,其中一个解法就是像我一开始想的那样,同时遍历两个数组,同时进行比较,我感觉我是想不到的;然而之后我又看到了一个解法,这个解法很妙,很巧,而且很简单,直接乐出来了;

题解要求的输入两行数,我不分别输入两个数组,然后分别遍历什么的,他就直接输入到一个数组里面,然后进行一次冒泡排序就完事了。

没了。






全部评论

相关推荐

我面试,她问我有女朋友没
不太迷人的反派_:不过对象,还会结合你老家,意向城市等等,看你是否稳定。哥们,别多想
点赞 评论 收藏
分享
06-02 15:53
阳光学院 Java
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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