c语言俩个数组合并排序
时间: 2023-11-24 14:50:47 浏览: 204
以下是C语言中合并排序两个数组的示例代码:
```c
#include <stdio.h>
void merge(int arr1[], int m, int arr2[], int n) {
int i = m - 1, j = n - 1, k = m + n - 1;
while (i >= 0 && j >= 0) {
if (arr1[i] > arr2[j]) {
arr1[k--] = arr1[i--];
} else {
arr1[k--] = arr2[j--];
}
}
while (j >= 0) {
arr1[k--] = arr2[j--];
}
}
int main() {
int arr1[6] = {1, 3, 5};
int arr2[3] = {2, 4, 6};
merge(arr1, 3, arr2, 3);
for (int i = 0; i < 6; i++) {
printf("%d ", arr1[i]);
}
return 0;
}
```
该代码中,我们定义了一个名为`merge`的函数,该函数接受两个已排序的数组`arr1`和`arr2`,以及它们的长度`m`和`n`。函数将这两个数组合并为一个已排序的数组,并将结果存储在`arr1`中。我们使用三个指针`i`、`j`和`k`来遍历这两个数组和结果数组。在遍历过程中,我们比较`arr1[i]`和`arr2[j]`的大小,将较大的值存储在`arr1[k]`中,并将相应的指针向前移动。最后,我们将剩余的元素从`arr2`复制到`arr1`中。
阅读全文