编程实现:将有序数组有序合并。 1)有两个从小到大的整型有序数组a和b,编一子函数将这两个数组合并为从小到大的有序数组c,整个合并过程中c保持有序; 2)子函数头要求为void merge(int a[],int b[],int c[],int m,int n),m用来传递a数组元素个数,n传递b数组元素个数。
时间: 2024-02-22 15:55:56 浏览: 75
以下是实现代码:
```c
void merge(int a[], int b[], int c[], int m, int n) {
int i = 0, j = 0, k = 0;
while (i < m && j < n) {
if (a[i] < b[j]) {
c[k++] = a[i++];
} else {
c[k++] = b[j++];
}
}
while (i < m) {
c[k++] = a[i++];
}
while (j < n) {
c[k++] = b[j++];
}
}
```
该函数的实现过程如下:
首先定义三个指针i、j、k,分别指向a、b、c数组的开头。
然后在循环中,比较a[i]和b[j]的大小,若a[i]小于b[j],则将a[i]加入到c数组中,i和k都加1;否则将b[j]加入到c数组中,j和k都加1。
最后,若a数组还有剩余元素,则将剩余元素加入到c数组中;若b数组还有剩余元素,则将剩余元素加入到c数组中。
最终,c数组中就是a数组和b数组合并后的有序数组。
阅读全文