合并两个有序数组为一个有序数组

这个算法是归并算法的第二步根本所在,前面已经写过了

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++描述,合并需要考虑两个数组相差很大的情况,所有只需要比较一个数组中的所有元素

剩下的直接填充进去了,剩下的也必然比另外一个用完的大,所以,排序好了


首页 我的博客
粤ICP备17103704号