目录
本文将为大家带来一篇有关有序序列合并的文章。主要内容是:两个有序序列,将两个序列合并后,输出一个有序序列。在此我们规定:
1.两个序列中的每个值范围均为:【0~100】
2.两个序列的长度均为:【0~50】
在开始合并之前:我们通过键盘输入两个升序序列,如图所示:

思路
首先,该两个序列均为有序序列,所以我们的思路如下:
第一步:将两个序列的第一个元素进行比较,假设某一序列的首元素比较大,则将该值打印,然后将序列首元素的位置向后移动一位,指向第二个元素,此时我们假设该元素就是该序列首元素;
第二步:此时依然是两个序列的首元素进行比较,即重复第一步;
前两步代码如图所示:
第三步:一直重复第二步,直到两个序列中的一个序列全部比较完,此时,剩余的那个序列的剩余部分直接打印出来,即可。

好的,那么经过分析之后,我们加上框架
代码实现
#include<stdio.h>
int main()
{
int arr1[1000] = { 0 };
int arr2[1000] = { 0 };
int n = 0;
int m = 0;
scanf("%d %d",&n,&m);
int i = 0;
for (i = 0; i < n; i++)
{
scanf("%d",&arr1[i]);
}
int j = 0;
for (j = 0; j < m; j++)
{
scanf("%d", &arr2[j]);
}
i = 0;
j = 0;
while (i < n && j < m)
{
if (arr1[i] < arr2[j])
{
printf("%d ",arr1[i]);
i++;
}
else
{
printf("%d ",arr2[j]);
j++;
}
}
if (i == n)
{
for (; j < m; j++)
{
printf("%d ",arr2[j]);
}
}
else
{
for (; i < n; i++)
{
printf("%d ", arr1[i]);
}
}
return 0;
}
结果如图所示:

如有错误,还请各位大神指正哦!

1433

被折叠的 条评论
为什么被折叠?



