从尾巴开始遍历,比较两个数组尾巴的最大值,然后把该最大值放进去,同时维护指针
public void merge(int A[], int m, int B[], int n) {
m--;
n--;
for (int i = 0; i < A.length; i++) {
//睡醒的时候想到了,从尾巴开始,把最大的数放进去
if (n >= 0 && (m < 0 || B[n] > A[m])) {
A[A.length - 1 - i] = B[n--];
} else {
A[A.length - 1 - i] = A[m--];
}
}
}
京公网安备 11010502036488号