你知道C语言中实现有序序列并序输出的2种方法吗?

简介: 你知道C语言中实现有序序列并序输出的2种方法吗?

1.题目描述


描述:输入两个升序排列的序列,将两个序列合并为一个有序序列并输出。

数据范围: 1 \le n, m \le 1000 \1≤n,m≤1000  , 序列中的值满足 0 \le val \le 30000 \0≤val≤30000

输入描述:输入包含三行,

第一行包含两个正整数n, m,用空格分隔。n表示第二行第一个升序序列中数字的个数,m表示第三行第二个升序序列中数字的个数。

第二行包含n个整数,用空格分隔。

第三行包含m个整数,用空格分隔。

输出描述:输出为一行,输出长度为n+m的升序序列,即长度为n的升序序列和长度为m的升序序列中的元素重新进行升序序列排列合并。


示例:输入:

5 6

1 3 7 9 22

2 8 10 17 33 44


复制输出:

1 2 3 7 8 9 10 17 22 33 44


2.题解法一


1.题目分析


1.1定义三个数组


当我们看到这个题目的时候第一反应可能是定义3个数组,然后将2个数组合并后放入第三个数组中。是的,这时我们只要解决2个数组的有序合并就能够将题目做出来了~


1.2实现有序合并


那我们如何实现俩个数的有序合并呢?


首先我们知道前面2个数组是存放了数值的有序数列 ,而第三个数组是没有存放数值的。


那我们是不是可以将2个数组中的值比较大小,然后按从小到大的顺序放进第三个数组中。


那我们用什么方法比较呢?

我们可以将2个数组中的第一个元素先进行比较,小的放进3数组。然后我们要用减少数组中的第二个元素继续与另一数组的第一元素进行比较,然后往复下去~


什么~   没关系,下面我用画图的方式展示一下


2.代码实现


注意!当我们完成这一步骤的时候,数组1 或数组2中只有其中一个数组中有遗漏的元素还没有放入3数组中


3.题解法二


1.题目分析


1.1定义一个数组


那我们可不可以用一个数组将它们进行排序呢~当然可以!(因为题目也没有要求嘛~)


1.2如何排序呢


这时候我们的思路就很清晰了,我们按题目要求在屏幕上输入数据,定义一个数组~

然后,我们只要在这一个数组中将他们进行排序就可以了~

我们可以用打擂台的办法进行排序~


1.我们假设数组中的第一个元素为最小值

2.我们将其与他后面的元素一一比较,找到比它小的就将他们交换(这时第一个元素是不是数组中最小的元素了呢~)

3.然后我们在将第二个元素与其后面的元素进行比较交换(进行n-1次循环我们就将元素排好序了)


2.代码实现


输入


4.完结散花


生活,就是匆忙的脚步,踏过岁月的篇章;就是点滴的欢笑,汇聚成幸福的海洋。生活,就是把握当下的美好,拥抱未来的希望。


学习,是开拓视野的窗户,是开启智慧大门的钥匙,是实现梦想的翅膀。让我们在知识的海洋里航行,不断拓展人生的版图。

相关文章
|
4月前
|
C语言
c语言左旋字符串问题(不同方法超详细解答)
c语言左旋字符串问题(不同方法超详细解答)
23 1
|
4月前
|
机器学习/深度学习 算法 C语言
详细介绍递归算法在 C 语言中的应用,包括递归的基本概念、特点、实现方法以及实际应用案例
【6月更文挑战第15天】递归算法在C语言中是强大力量的体现,通过函数调用自身解决复杂问题。递归涉及基本概念如自调用、终止条件及栈空间管理。在C中实现递归需定义递归函数,分解问题并设定停止条件。阶乘和斐波那契数列是经典应用示例,展示了递归的优雅与效率。然而,递归可能导致栈溢出,需注意优化。学习递归深化了对“分而治之”策略的理解。**
71 7
|
4月前
|
测试技术 C语言
数据结构学习记录——树习题—Tree Traversals Again(题目描述、输入输出示例、解题思路、解题方法C语言、解析)
数据结构学习记录——树习题—Tree Traversals Again(题目描述、输入输出示例、解题思路、解题方法C语言、解析)
41 1
|
5月前
|
传感器 人工智能 物联网
【C 言专栏】C 语言与硬件交互的方法
【5月更文挑战第4天】C 语言在硬件交互中扮演关键角色,主要通过直接访问硬件寄存器、中断处理、I/O 端口操作、内存映射I/O和设备驱动程序开发。挑战包括硬件多样性、实时性要求和错误处理。随着物联网和人工智能发展,C语言与硬件交互的需求增加,未来将面临更多新硬件和技术的挑战。本文旨在帮助读者理解和掌握这一领域的知识,以实现更高效的硬件互动。
167 1
【C 言专栏】C 语言与硬件交互的方法
|
4月前
|
IDE 编译器 开发工具
详细解读C语言程序设计:现代方法(第2版)第二章全部习题答案
详细解读C语言程序设计:现代方法(第2版)第二章全部习题答案
27 0
|
4月前
|
C语言
|
4月前
|
C语言
C语言----获取一个整数二进制序列中所有的偶数位和奇数位,分别打印出二进制序列
C语言----获取一个整数二进制序列中所有的偶数位和奇数位,分别打印出二进制序列
|
4月前
|
存储 C语言
C语言---求一个整数存储在内存中的二进制中1的个数--3种方法
C语言---求一个整数存储在内存中的二进制中1的个数--3种方法
|
5月前
|
Shell Linux 编译器
C语言,Linux,静态库编写方法,makefile与shell脚本的关系。
总结:C语言在Linux上编写静态库时,通常会使用Makefile来管理编译和链接过程,以及Shell脚本来自动化构建任务。Makefile包含了编译规则和链接信息,而Shell脚本可以调用Makefile以及其他构建工具来构建项目。这种组合可以大大简化编译和构建过程,使代码更易于维护和分发。
57 5
|
4月前
|
算法 C语言
数据结构和算法——归并排序(有序子列的归并、递归算法、非递归算法、思路图解、C语言代码)
数据结构和算法——归并排序(有序子列的归并、递归算法、非递归算法、思路图解、C语言代码)
23 0