这个算法是归并算法的第二步根本所在,前面已经写过了
vector<int> mergeSortedArray(vector<int> &A, vector<int> &B) {
// write your code here
vector<int> res ;
int i = 0;
int j = 0;
//只需要比完一个数组中的元素
while(i<A.size()&&j<B.size()){
if(A[i]<B[j]){
res.push_back(A[i++]);
}else{
res.push_back(B[j++]);
}
}
//填充剩下的元素到后面
while(i<A.size()){
res.push_back(A[i++]);
}
while(j<B.size()){
res.push_back(B[j++]);
}
return res;
}这里是c++描述,合并需要考虑两个数组相差很大的情况,所有只需要比较一个数组中的所有元素
剩下的直接填充进去了,剩下的也必然比另外一个用完的大,所以,排序好了