有序序列合并(c语言)


代码实例

cs 复制代码
int main()
{
	int n = 0;
	int m = 0;
	scanf("%d %d", &n, &m);
	//n输入第一个升序数组中的元素个数
	//m输入第二个升序数组中的元素个数

	//创建数组
	//arr1为n对应的数组
	int arr1[1000];
	//arr2为m对应的数组
	int arr2[1000];
	//arr3为数组1与数组2结合后的数组
	int arr3[2000];
	int i = 0;
	//输入数组1和数组2的元素
	for (i = 0; i < n; i++)
	{
		scanf("%d", &arr1[i]);
	}
	for (i = 0; i < m; i++)
	{
		scanf("%d", &arr2[i]);
	}
	i = 0;
	int j = 0;
	int k = 0;
	//只要其中有一个不满足条件的,就跳出循环
	//那剩下来的那就是元素个数相对与那一个过大的数组
	while (i < n && j < m)
	{
		if (arr1[i] <= arr2[j])
		{
			arr3[k++] = arr1[i++];
		}
		else
		{
			arr3[k++] = arr2[j++];
		}
	}
	//判断n和m是否有剩余元素
	//有的话,都给arr3。
	//因为他们都是升序数组,所以直接赋值就ok
	while (i < n)
	{
		arr3[k++] = arr1[i++];
	}
	while (j < m)
	{
		arr3[k++] = arr2[j++];
	}
	//遍历arr3的数组,即是结合后的升序数组
	for (i = 0; i < n + m; i++)
	{
		printf("%d " ,arr3[i]);

	}
	return 0;
}

运行结果;


相关推荐
布莱克60510 小时前
C++ 中 map 的 insert 与 emplace:key 已存在时会覆盖吗?
开发语言·数据结构·c++·算法·map
D e re k ZH13 小时前
C++ 系统学习手记:从语法细节到工程实践
开发语言·数据结构·c++·算法
石小石Orz14 小时前
AI 正在蚕食我们的编码能力
前端·后端·算法
Zwawa15 小时前
屏幕不止一种:OLED、LCD1602字符屏、TFT/IPS图形屏和串口屏怎么用,这与TTY和PTY又有什么关系
c语言·单片机·嵌入式
Fruiticecake15 小时前
C 程序员速通现代 C++(一):lambda、std::function、移动语义与智能指针
c语言·c++
田甲16 小时前
做一款 Type-C 母座读卡器:GL3224 双卡方案实测
c语言·开发语言
民乐团扒谱机16 小时前
【微实验】NSGA-II(非支配排序遗传算法)——解决多目标优化问题的“自然选择模拟器”
linux·人工智能·算法
青少儿编程课堂16 小时前
蓝桥杯·全国青少年信息素养大赛·电子学会Python/C++考级:中缀表达式求值解析
c++·python·算法·bfs·信息学竞赛
武子康18 小时前
Qwen-Drive 到底是什么:4B 级 VLM 如何成为驾驶策略底座
人工智能·算法·机器学习