自后向前:先填充A数组后边的空位
public void merge(int A[], int m, int B[], int n) {
int indexA = m-1;
int indexB = n-1;
int index = m +n-1;
//AB都有值时,比较填充
while(indexA >= 0 && indexB >= 0){
A[index--] = A[indexA] > B[indexB] ? A[indexA--] : B[indexB--];
}
//当A没有值的时候,将B复制
while(indexB >= 0){
A[index--] = B[indexB--];
}
//当B没有值的时候,将A复制,A还是A
}


京公网安备 11010502036488号