将两个有序的数组,归并为一个有序的新数组C语言详解

问题描述:将两个有序的数组,归并为一个有序的新数组
编译环境:vc++6.0
代码:

#include <stdio.h>

/*将两个有序的数组,归并为一个有序的新数组*/

int main()
{
	int i = 0, j = 0, k = 0;
	int a[5] = { 4,9,17,18,19 }, b[5] = { 2 ,6,7 ,11, 18 }, c[10];     //将数组a,b归并到数组c

	while (i < 5 && j < 5)           //数组a,b中的元素都没有归并完
		if (a[i] < b[j])			//小的放前面
			c[k++] = a[i++];
		else
			c[k++] = b[j++];

	while (i < 5)                  //判断哪个数组还有剩余
		c[k++] = a[i++];
	while (j < 5)
		c[k++] = b[j++];

	printf("合并后:\n");           //输出归并后的结果
	for (k = 0; k < 10; k++)
		printf("%d\t", c[k]);
	printf("\n");
	return 0;
}

测试案例:
在这里插入图片描述


版权声明:本文为weixin_39791665原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。