有序序列合并(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;
}

运行结果;


相关推荐
小葡萄202539 分钟前
VSCode 刷 LeetCode 算法题配置教程
vscode·算法·leetcode
努力冲冲4 小时前
常用排序算法
java·算法·排序算法
yuezhilangniao6 小时前
关于开发语言的一些效率 从堆栈角度理解一部分c java go python
java·c语言·开发语言
-森屿安年-6 小时前
C语言学习笔记——文件
c语言·笔记·学习
夜斗小神社7 小时前
【LeetCode 热题 100】(六)矩阵
算法·leetcode·矩阵
小六学编程7 小时前
C语言库中的字符函数
c语言
天地一流殇8 小时前
SimBA算法实现过程
深度学习·算法·对抗攻击·黑盒
Hello_Embed8 小时前
STM32HAL 快速入门(三):从 HAL 函数到寄存器操作 —— 理解 HAL 库的本质
c语言·stm32·单片机·嵌入式硬件·学习
2501_924730618 小时前
智慧城管复杂人流场景下识别准确率↑32%:陌讯多模态感知引擎实战解析
大数据·人工智能·算法·计算机视觉·目标跟踪·视觉检测·边缘计算
weixin_307779138 小时前
C++实现MATLAB矩阵计算程序
开发语言·c++·算法·matlab·矩阵