这个算法是归并算法的第二步根本所在,前面已经写过了
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++描述,合并需要考虑两个数组相差很大的情况,所有只需要比较一个数组中的所有元素
剩下的直接填充进去了,剩下的也必然比另外一个用完的大,所以,排序好了