已知元素从小到大排列的两个数组x[]和y[]
时间: 2023-10-28 22:04:47 浏览: 55
,它们的长度均为n。请你编写一个函数,将它们合并成一个按元素从小到大排列的数组z[],并返回z[]。
提示:可以使用归并排序的思想,分别从x[]和y[]中取出最小的元素比较,将较小的元素存入z[]中,直到两个数组中的元素都被取完。
C++代码如下:
```cpp
#include <vector>
using namespace std;
vector<int> merge(vector<int>& x, vector<int>& y) {
vector<int> z;
int i = 0, j = 0;
while (i < x.size() && j < y.size()) {
if (x[i] < y[j]) {
z.push_back(x[i]);
i++;
} else {
z.push_back(y[j]);
j++;
}
}
while (i < x.size()) {
z.push_back(x[i]);
i++;
}
while (j < y.size()) {
z.push_back(y[j]);
j++;
}
return z;
}
```
Python代码如下:
```python
def merge(x, y):
z = []
i, j = 0, 0
while i < len(x) and j < len(y):
if x[i] < y[j]:
z.append(x[i])
i += 1
else:
z.append(y[j])
j += 1
while i < len(x):
z.append(x[i])
i += 1
while j < len(y):
z.append(y[j])
j += 1
return z
```