递归合并数组。如果数组元素全部用完则返回;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);
}
}
}