你知道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.完结散花


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


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

相关文章
|
2月前
|
存储 编译器 C语言
【C语言】判断字符类型的三种方法
【C语言】判断字符类型的三种方法
84 0
|
2月前
|
C语言
【C语言】大小写字母的相互转化:多种方法解析及原理说明
【C语言】大小写字母的相互转化:多种方法解析及原理说明
122 0
|
6天前
|
Shell Linux 编译器
C语言,Linux,静态库编写方法,makefile与shell脚本的关系。
总结:C语言在Linux上编写静态库时,通常会使用Makefile来管理编译和链接过程,以及Shell脚本来自动化构建任务。Makefile包含了编译规则和链接信息,而Shell脚本可以调用Makefile以及其他构建工具来构建项目。这种组合可以大大简化编译和构建过程,使代码更易于维护和分发。
23 5
|
7天前
|
Shell Linux 编译器
C语言,Linux,静态库编写方法,makefile与shell脚本的关系。
总结:C语言在Linux上编写静态库时,通常会使用Makefile来管理编译和链接过程,以及Shell脚本来自动化构建任务。Makefile包含了编译规则和链接信息,而Shell脚本可以调用Makefile以及其他构建工具来构建项目。这种组合可以大大简化编译和构建过程,使代码更易于维护和分发。
15 3
|
8天前
|
传感器 人工智能 物联网
【C 言专栏】C 语言与硬件交互的方法
【5月更文挑战第4天】C 语言在硬件交互中扮演关键角色,主要通过直接访问硬件寄存器、中断处理、I/O 端口操作、内存映射I/O和设备驱动程序开发。挑战包括硬件多样性、实时性要求和错误处理。随着物联网和人工智能发展,C语言与硬件交互的需求增加,未来将面临更多新硬件和技术的挑战。本文旨在帮助读者理解和掌握这一领域的知识,以实现更高效的硬件互动。
【C 言专栏】C 语言与硬件交互的方法
|
12天前
|
算法 C语言
【C 言专栏】C 语言文件操作的技巧与方法
【4月更文挑战第30天】本文介绍了C语言文件操作的关键技巧,包括文件的打开与关闭(使用`fopen`和`fclose`函数),读取(`fgetc`、`fgets`和`fread`)和写入(`fputc`、`fputs`和`fwrite`)操作。此外,还讨论了文件指针移动(`fseek`)、错误处理、文件权限和格式等问题。文中提供了一个简单的读写文件的示例,并提到了高级技巧如随机访问、文件缓冲和截断。掌握这些技能将有助于提升C语言编程中的文件处理能力。
|
19天前
|
C语言
C语言取整方法详解
C语言取整方法详解
20 0
|
26天前
|
C语言
多组数据的输入方法(c语言实现)
多组数据的输入方法(c语言实现)
|
1月前
|
C语言
【C语言】五种方法实现C语言中大小写字母的转化
【C语言】五种方法实现C语言中大小写字母的转化
|
2月前
|
C语言
【C语言】求一个整数的二进制序列中1的个数的三种方法
【C语言】求一个整数的二进制序列中1的个数的三种方法
16 0