C语言用指针实现两个有序数组合并为一个有序数组
时间: 2024-06-14 07:03:52 浏览: 16
以下是C语言用指针实现两个有序数组合并为一个有序数组的方法:
```c
#include <stdio.h>
#include <stdlib.h>
void mergeArrays(int arr1[], int arr2[], int n1, int n2) {
int *tmp = (int *)malloc((n1 + n2) * sizeof(int));
int p1 = 0, p2 = 0, p = 0;
while (p1 < n1 && p2 < n2) {
if (arr1[p1] <= arr2[p2]) {
tmp[p++] = arr1[p1++];
} else {
tmp[p++] = arr2[p2++];
}
}
while (p1 < n1) {
tmp[p++] = arr1[p1++];
}
while (p2 < n2) {
tmp[p++] = arr2[p2++];
}
printf("Merged array: ");
for (int i = 0; i < n1 + n2; i++) {
printf("%d ", tmp[i]);
}
free(tmp);
}
int main() {
int arr1[] = {1, 3, 5, 7};
int arr2[] = {2, 4, 6, 8, 10};
int n1 = sizeof(arr1) / sizeof(arr1[0]);
int n2 = sizeof(arr2) / sizeof(arr2[0]);
mergeArrays(arr1, arr2, n1, n2);
return 0;
}
```