合并两个有序数组c++简单
时间: 2024-09-15 10:05:39 浏览: 38
C++实现两个有序数组的合并
5星 · 资源好评率100%
合并两个有序数组在C++中可以使用双指针法,这是一种简洁而高效的解决方案。假设你有两个已排序的整数数组`arr1`和`arr2`,你可以创建一个新的空数组`result`,然后从两个数组的起始位置开始比较元素,将较小的那个添加到`result`并移动对应的指针。
以下是一个简单的示例代码:
```cpp
#include <vector>
std::vector<int> mergeSortedArrays(std::vector<int>& arr1, std::vector<int>& arr2) {
int i = 0; // arr1 的指针
int j = 0; // arr2 的指针
std::vector<int> result;
// 遍历两个数组,直到其中一个数组遍历完
while (i < arr1.size() && j < arr2.size()) {
if (arr1[i] <= arr2[j]) {
result.push_back(arr1[i]);
i++;
} else {
result.push_back(arr2[j]);
j++;
}
}
// 把剩余未加进结果的数组元素添加进去
while (i < arr1.size()) {
result.push_back(arr1[i]);
i++;
}
while (j < arr2.size()) {
result.push_back(arr2[j]);
j++;
}
return result;
}
```
在这个函数中,我们首先检查`arr1`和`arr2`的第一个元素,选择较小的一个添加到结果,并相应地移动指针。当其中一个数组遍历结束,我们将另一个数组剩余的部分直接复制到结果数组中。
阅读全文