将第二个有序数组插入第一个有序数组中,使得最终的结果仍然有序
思路
参考剑指Offer-面试题5:替换空格 ,插入新元素,倒序,减少元素移动次数。这里插入条件改成判断大小的问题。
代码
public void test1(int[] arr1,int[] arr2){
int len1=0;
int len2=0;
for (int i=0;i<arr1.length;i++){
if (arr1[i]!=0){
len1++;
}
}
for (int i=0;i<arr2.length;i++){
if (arr2[i]!=0){
len2++;
}
}
int len = len1+len2;
//判断大小,插入
for (int i=len-1;i>0;i--){
if (arr1[len1-1]>arr2[len2-1]){
arr1[i]=arr1[--len1];
}else if (arr1[len1-1]<arr2[len2-1]){
arr1[i]=arr2[--len2];
}else {
arr1[i]=arr1[--len1];
arr1[--i]=arr2[--len2];
}
}
//输出数组
for (int i=0;i<len;i++){
System.out.println(arr1[i]);
}
}