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

运行结果;


相关推荐
老鱼说AI16 分钟前
从点积到希尔伯特空间:向量内积的几何本质与大模型相似度度量
人工智能·深度学习·线性代数·算法·机器学习·数学建模
地平线开发者1 小时前
模型部署|如何解决算子约束
深度学习·算法·自动驾驶
Navigator_Z1 小时前
LeetCode //C - 1254. Number of Closed Islands
c语言·算法·leetcode
deepseek232 小时前
GPT-6 Astra 破解 FrontierMath 九年悬案拆解:调和熵投票规则反证核恒非空,局部搜索如何终结反例悬赏
人工智能·算法·ai agent
syagain_zsx2 小时前
算法基础篇 · 04 前缀和(C++ 题解)
c++·算法·前缀和
Logic1012 小时前
C语言/数据结构滑动窗口题解:替换k个字符后的最长连续相同字符子串(LeetCode 424)
c语言·数据结构·字符串·滑动窗口·时间复杂度·频率统计·算法题
free-elcmacom3 小时前
发际线警告!手撕《C陷阱与缺陷》终极 BOSS:signal 函数与 typedef 魔法
c语言·开发语言·visual studio code·visual studio
青山是哪个青山3 小时前
LeetCode 123:买卖股票的最佳时机 III
算法
haluhalu.4 小时前
初识 Protobuf:微服务跨语言通信的一份契约
java·c语言·开发语言·c++·python
Zane19944 小时前
写对二分查找有多难?Java集合框架的作者也曾栽在一行mid计算上
算法