递归合并数组。如果数组元素全部用完则返回;A数组用完后没合并成功后递归合并B数组的元素;B数组用完后返回;AB数组都没用完时候比较AB当前的大小,较大者放在A数组后面的位置。

public class Solution {
    public void merge(int A[], int m, int B[], int n) {
        if(m==0 && n==0)
            return;
        if(m==0){
            A[n-1]=B[n-1];
            merge(A,m,B,n-1);
            return;
        }
        if(n==0){
            return;
        }
        if(A[m-1]<B[n-1]){
            A[m+n-1]=B[n-1];
            merge(A,m,B,n-1);
        }else{
            A[m+n-1]=A[m-1];
            merge(A,m-1,B,n);
        }
    }
}