合并两个无序数组
合并两个无序数组
现在我有两个无序的数组(长度不相等),我现在想将两个数组合并
#include <iostream>
#include <vector>
using namespace std;
vector<int> mergeArrays(vector<int>& arr1, vector<int>& arr2) {
vector<int> res;
int i = 0, j = 0;//设置两个指针分别指向两个数组
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 res;
}
int main() {
int n, m;
cin >> n >> m; // 输入两个数组的长度
vector<int> arr1(n);
vector<int> arr2(m);
for (int i = 0; i < n; i++) {
cin >> arr1[i]; // 输入第一个数组的元素
}
for (int i = 0; i < m; i++) {
cin >> arr2[i]; // 输入第二个数组的元素
}
vector<int> merged = mergeArrays(arr1, arr2);
for (int num : merged) {
cout << num << " ";
}
return 0;
}