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

运行结果;


相关推荐
z203483152010 小时前
如何通过状态机解决按键识别问题(二)
c语言·单片机·嵌入式硬件
代码改善世界11 小时前
从零开始写贪吃蛇游戏(C语言控制台版)
c语言·游戏
Eternity∞11 小时前
Linux系统下,C语言基础
linux·c语言·开发语言
癫狂的兔子11 小时前
【Python】【机器学习】K-MEANS算法
算法·机器学习·kmeans
Bear on Toilet11 小时前
递归_二叉树_50 . 从前序与中序遍历序列构造二叉树
数据结构·算法·leetcode·深度优先·递归
plus4s11 小时前
2月18日(82-84题)
c++·算法·动态规划
艾醒12 小时前
打破信息差——2026年2月19日AI热点新闻速览
算法
追随者永远是胜利者14 小时前
(LeetCode-Hot100)62. 不同路径
java·算法·leetcode·职场和发展·go
追随者永远是胜利者14 小时前
(LeetCode-Hot100)56. 合并区间
java·算法·leetcode·职场和发展·go
wu_asia14 小时前
每日一练伍
算法