c语言拼接数组并排序
时间: 2023-11-24 13:48:28 浏览: 118
C语言拼接数组并排序的基本思路是将两个有序数组合并成一个有序数组。可以使用合并排序的方法,即先在两个数组中各取第一个元素进行比较,将小的元素放入新的数组中,然后再取小的元素所在数组的下一个元素与另一个数组中上次比较后较大的元素比较,重复上述比较过程,直到某个数组被先排完,最后将另一个数组剩余元素抄入新的数组,合并排序完成。
下面是一个示例的C语言代码,可以将两个长度为10的有序数组a和b合并成一个有序数组c:
```
#include <stdio.h>
int main() {
int a[10] = {1, 3, 5, 7, 9, 10, 11, 13, 14, 20};
int b[10] = {2, 4, 6, 8, 9, 11, 13, 16, 17, 19};
int c[20];
int i, ia = 0, ib = 0, ic = 0;
while (ia < 10 && ib < 10) {
if (a[ia] < b[ib]) {
c[ic] = a[ia];
ia++;
} else {
c[ic] = b[ib];
ib++;
}
ic++;
}
while (ia <= 9) {
c[ic] = a[ia];
ia++;
ic++;
}
while (ib <= 9) {
c[ic] = b[ib];
ib++;
ic++;
}
for (i = 0; i < 20; i++) {
printf("%d ", c[i]);
}
printf("\n");
return 0;
}
```
该代码先定义了两个长度为10的有序数组a和b,然后定义了一个长度为20的新数组c,用于存放合并后的有序数组。接着使用while循环进行合并排序,最后使用for循环打印输出合并后的有序数组c。
阅读全文