题解 | 有序序列合并

有序序列合并

https://www.nowcoder.com/practice/a9e943b0dab142759807d0cfb6863897

#include <stdio.h>
int main()
{
	int n = 0, m = 0, num1[1001] = { 0 }, num2[1001] = { 0 }, num[2000] = { 0 };//此处注意数组的大小的设置
	scanf("%d%d", &n, &m);
	for (int a = 0; a < n; a++)
	{
		scanf("%d", &num1[a]);
	}
  //n可能为1000,故上面数组应大于1000,可取1001
	num1[n] = 30001;//设置哨兵值
	for (int a = 0; a < m; a++)
	{
		scanf("%d", &num2[a]);
	}
	num2[m] = 30001;//设置哨兵值
	int i = 0, j = 0, k = 0;
  //合并两个数组
	for(k=0;k<n+m;k++)
	{
		if (num1[i] < num2[j])
		{
			num[k] = num1[i];
			i++;
		}
		else
		{
			num[k] = num2[j];
			j++;
		}
	}
	for (k = 0; k < n + m; k++)
	{
		printf("%d ", num[k]);
	}
	return 0;
}

全部评论

相关推荐

04-01 11:08
中原工学院 Java
老六f:感觉这种培训期过了就找理由给你开了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务