用指针方法实现将两个有序数组合并成一个有序数组
时间: 2023-04-25 11:02:01 浏览: 252
可以定义一个指针方法,接收两个有序数组和它们的长度作为参数,然后将它们合并成一个有序数组。
具体实现步骤如下:
1. 定义一个新的数组,长度为两个有序数组的长度之和。
2. 定义三个指针,分别指向两个有序数组和新数组的起始位置。
3. 比较两个有序数组的当前元素大小,将较小的元素放入新数组中,并将指针向后移动一位。
4. 重复步骤3,直到其中一个有序数组的元素全部放入新数组中。
5. 将另一个有序数组的剩余元素放入新数组中。
6. 返回新数组。
示例代码如下:
int* merge(int* arr1, int len1, int* arr2, int len2) {
int* mergedArr = new int[len1 + len2];
int i = 0, j = 0, k = 0;
while (i < len1 && j < len2) {
if (arr1[i] < arr2[j]) {
mergedArr[k++] = arr1[i++];
} else {
mergedArr[k++] = arr2[j++];
}
}
while (i < len1) {
mergedArr[k++] = arr1[i++];
}
while (j < len2) {
mergedArr[k++] = arr2[j++];
}
return mergedArr;
}