合并两个已排序数组,如果第一个数组末端有足够空间容纳另一个数组并要求额外空间为O(1)
注意n用来指明数组a的有效元素的个数。
public int[] mergeArray(int a[],int b[],int n){
int fin=n+b.length-1;
int i=n-1;
int j=b.length-1;
while(i>=0 && j>=0){
if(a[i]>=b[j]){
a[fin]=a[i];
i--;
}
else{
a[fin]=b[j];
j--;
}
fin--;
}
while(j>=0){
a[fin--]=b[j--];
}
return a;
}
网友评论