合并排序好的数组
分析:
为了避免使用额外的空间,这里的技巧就是从后向前合并。代码很简单,但是也要求基本功扎实。
public class Solution {
public void merge(int A[], int m, int B[], int n) {
int e = m+n;
while(m>0 && n>0){
if(A[m-1]>B[n-1]){
A[–e]=A[–m];
}
else{
A[–e]=B[–n];
}
}
if(n>0){
System.arraycopy(B,0,A,0,n);
}
}
}
public void merge(int A[], int m, int B[], int n) {
int e = m+n;
while(m>0 && n>0){
if(A[m-1]>B[n-1]){
A[–e]=A[–m];
}
else{
A[–e]=B[–n];
}
}
if(n>0){
System.arraycopy(B,0,A,0,n);
}
}
}