问题描述:将两个有序的数组,归并为一个有序的新数组
编译环境: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;
}
测试案例: