题解 | #有序序列合并#
有序序列合并
http://www.nowcoder.com/practice/a9e943b0dab142759807d0cfb6863897
#include <stdio.h>
int main()
{
int m = 0;
int n = 0;
int arr1[100] = { 0 };
int arr2[100] = { 0 };
int arr3[200] = { 0 };
//输入
scanf("%d %d", &n, &m);
for (int i = 0; i < n; i++)
{
scanf("%d", &arr1[i]);
}
for (int j = 0; j < m; j++)
{
scanf("%d", &arr2[j]);
}
//合并
int i = 0;
int j = 0;
int k = 0;
while (i != n && j != m)
{
arr3[k] = (arr1[i] < arr2[j]) ? arr1[i] : arr2[j];
k++;
if (arr1[i] < arr2[j])
{
i++;
}
else
{
j++;
}
}
if (i == n)
{
for (; j < m; j++)
{
arr3[k] = arr2[j];
k++;
}
}
else if (j == m)
{
for (; i < n; i++)
{
arr3[k] = arr1[i];
k++;
}
}
//输出
for (i = 0; i < m + n; i++)
{
printf("%d ", arr3[i]);
}
return 0;
} 编程初学者入门训练 文章被收录于专栏
针对编程初学者入门训练130题的代码详解专栏,内附注释方便理解,牛客130题的代码均用C语言实现,方便初学者学习。
