美文网首页
2_15有序数组合并

2_15有序数组合并

作者: X_Y | 来源:发表于2017-09-06 17:02 被阅读7次

    有两个从小到大排序以后的数组A和B,其中A的末端有足够的缓冲空容纳B。请编写一个方法,将B合并入A并排序。

    给定两个有序int数组A和B,A中的缓冲空用0填充,同时给定A和B的真实大小int n和int m,请返回合并后的数组。

    class Merge {
    public:
        int* mergeAB(int* A, int* B, int n, int m) {
            // write code here
            int pA = n-1, pB = m-1;
            int pAB = n + m - 1;
            while(pB >= 0 && pA >= 0){
                if(B[pB] > A[pA]){
                    A[pAB--] = B[pB--];
                }else{
                    A[pAB--] = A[pA--];
                }
            }
            if(0 > pA){
                while(pB >= 0){
                    A[pAB--] = B[pB--];
                }
            }
            return A;
        }
    };
    

    相关文章

      网友评论

          本文标题:2_15有序数组合并

          本文链接:https://www.haomeiwen.com/subject/swjvjxtx.html