没什么好说的,这个功能没记错的话是一个排序算法的一部分,而且应用十分广泛:

class Solution {
public:
    void merge(int A[], int m, int B[], int n) {
        int *tmp = new int[m];
        for(int i = 0; i < m; ++i) tmp[i] = A[i];
        int i = 0;
        int j = 0;
        while( i < m && j < n){
            if(tmp[i] < B[j]){
                 A[i+j] = tmp[i];
                ++i;
                continue;
            }
            A[i+j] = B[j];
            ++j;
        }
        for(; i < m; ++i) A[i+j] = tmp[i];
        for(; j < n; ++j) A[i+j] = B[j];
    }
};

算法导论形象得将其称之为左手牌和右手牌。比喻十分形象。问题就是牌组合并的问题

运行时间看系统了,一次跑到了 3ms, 一次是 5ms