Merge Sorted Array

class Solution {
    /**
     * @param A: sorted integer array A which has m elements, 
     *           but size of A is m+n
     * @param B: sorted integer array B which has n elements
     * @return: void
     */
    public void mergeSortedArray(int[] A, int m, int[] B, int n) {
        // write your code here
        if (A == null || A.length == 0 || A.length < B.length) {
            return;
        }
        if (B == null || B.length == 0) {
            return;
        }
        
        int a = m - 1;
        int b = n - 1;
        int i = m + n - 1;
        while (a >= 0 && b >= 0) {
            if (A[a] > B[b]) {
                A[i--] = A[a--];
            } else {
                A[i--] = B[b--];
            }
        } 
        while (a >= 0) {
            A[i--] = A[a--];
        }
        while (b >= 0) {
            A[i--] = B[b--];
        }
    }
}

 

posted on 2017-05-31 09:15  codingEskimo  阅读(88)  评论(0)    收藏  举报

导航