C++代码 给出两个有序的整数数组A和B,请将数组B合并到数组A中,变成一个有序的升序数组
时间: 2024-12-10 21:40:56 浏览: 11
C++实现两个有序数组的合并
5星 · 资源好评率100%
在C++中,你可以使用双指针技术来合并两个已排序的数组。这里有一个基本的实现方法:
```cpp
#include <vector>
void mergeSortedArrays(std::vector<int>& A, std::vector<int>& B) {
int i = 0, j = 0, k = 0;
while (i < A.size() && j < B.size()) { // 当两个数组都还有元素
if (A[i] <= B[j]) { // 如果A的当前元素小于等于B的当前元素
A[k++] = A[i++]; // 把A的元素放入结果数组,并移动指针
} else {
A[k++] = B[j++]; // 否则,把B的元素放入结果数组,并移动指针
}
}
// 如果B还有剩余元素,直接复制过去
while (j < B.size()) {
A[k++] = B[j++];
}
// 如果A还有剩余元素,同样处理
while (i < A.size()) {
A[k++] = A[i++];
}
}
// 示例
std::vector<int> A = {1, 3, 5};
std::vector<int> B = {2, 4, 6};
mergeSortedArrays(A, B);
// 结果:A现在变成了 [1, 2, 3, 4, 5, 6]
```
这个函数首先比较两个数组的首元素,将较小的元素放入目标数组,然后递增对应的指针。当其中一个数组遍历完时,只需将另一个数组剩下的元素依次添加到结果数组即可。
阅读全文