只有一个注意事项,java的引用传递是传值的。
所以A=C是错的
必须使用for循环,依次修改数组对象A中的值,此时才能真正改变实参A
public void merge(int A[], int m, int B[], int n) { int[] C=new int[m+n]; int i,j,k; i=j=k=0; while(i<m && j<n){ if(A[i]<B[j]){ C[k++]=A[i++]; }else{ C[k++]=B[j++]; } } while(i<m){ C[k++]=A[i++]; } while(j<n){ C[k++]=B[j++]; } //直接赋值是错的,只能使形参A指向数组对象C,并不会改变外面的实参A值 //A=C; for (int l = 0; l < m+n; l++) { A[l]=C[l]; } }