在C++中合并两个排序数组可以使用归并排序的思想来实现。具体步骤如下:
这种方法的时间复杂度为O(m+n),其中m和n分别为两个排序数组的长度。
以下是一个示例代码:
#include <iostream>
#include <vector>
std::vector<int> mergeSortedArrays(const std::vector<int>& arr1, const std::vector<int>& arr2) {
std::vector<int> merged;
int i = 0, j = 0;
while (i < arr1.size() && j < arr2.size()) {
if (arr1[i] <= arr2[j]) {
merged.push_back(arr1[i]);
i++;
} else {
merged.push_back(arr2[j]);
j++;
}
}
while (i < arr1.size()) {
merged.push_back(arr1[i]);
i++;
}
while (j < arr2.size()) {
merged.push_back(arr2[j]);
j++;
}
return merged;
}
int main() {
std::vector<int> arr1 = {1, 3, 5, 7};
std::vector<int> arr2 = {2, 4, 6, 8};
std::vector<int> merged = mergeSortedArrays(arr1, arr2);
for (int num : merged) {
std::cout << num << " ";
}
return 0;
}
这段代码将两个已排序的数组arr1
和arr2
合并为一个新的排序数组,并输出结果。你可以根据实际情况修改输入的数组和输出的方式。
领取专属 10元无门槛券
手把手带您无忧上云