数据结构合并两个有序数组 用c++写出来
时间: 2024-10-04 13:02:54 浏览: 26
在C++中,合并两个已经排序的整数数组可以使用双指针技巧,从每个数组的起始位置开始比较,并将较小的元素放入新数组中,直到其中一个数组遍历完。如果还有剩余元素未添加,则将另一个数组剩下的部分直接复制到新数组。
这里是一个基本的C++实现:
```cpp
#include <vector>
std::vector<int> mergeTwoArrays(std::vector<int>& nums1, std::vector<int>& nums2) {
std::vector<int> merged;
int i = 0, j = 0;
// 遍历两个数组,选择较小的元素添加到新数组
while (i < nums1.size() && j < nums2.size()) {
if (nums1[i] < nums2[j]) {
merged.push_back(nums1[i]);
i++;
} else {
merged.push_back(nums2[j]);
j++;
}
}
// 如果有一个数组还有剩余,直接添加
while (i < nums1.size()) {
merged.push_back(nums1[i]);
i++;
}
while (j < nums2.size()) {
merged.push_back(nums2[j]);
j++;
}
return merged;
}
```
这个函数会返回一个新的已排序数组,其中包含了nums1和nums2的所有元素。
阅读全文