用指针方法实现两个有序数组合并成一个有序数组
时间: 2023-04-23 21:07:30 浏览: 74
可以使用指针方法实现两个有序数组合并成一个有序数组,具体步骤如下:
1. 定义三个指针,分别指向两个有序数组的开头和一个新数组的开头。
2. 比较两个有序数组的当前元素大小,将较小的元素放入新数组中,并将指向该元素的指针向后移动一位。
3. 重复步骤2,直到其中一个有序数组的元素全部放入新数组中。
4. 将另一个有序数组的剩余元素依次放入新数组中。
5. 返回新数组的指针。
示例代码如下:
int* merge(int* arr1, int size1, int* arr2, int size2) {
int* result = new int[size1 + size2];
int* p1 = arr1;
int* p2 = arr2;
int* pr = result;
while (p1 < arr1 + size1 && p2 < arr2 + size2) {
if (*p1 < *p2) {
*pr = *p1;
p1++;
} else {
*pr = *p2;
p2++;
}
pr++;
}
while (p1 < arr1 + size1) {
*pr = *p1;
p1++;
pr++;
}
while (p2 < arr2 + size2) {
*pr = *p2;
p2++;
pr++;
}
return result;
}