将两个有序数组合并为一个有序数组
要求:不能调包,不能手动实现排序算法
public class Sort {
public static int[] sort(int[] num1, int[] num2){
//变量用于存储两个集合应该被比较的索引(存入新集合就加一)
int a = 0;
int b = 0;
int[] num3 = new int[num1.length + num2.length];
for (int i = 0; i < num3.length; i++) {
if (a < num1.length && b < num2.length) { //两数组都未遍历完,相互比较后加入
if (num1[a] > num2[b]) {
num3[i] = num2[b];
b++;
} else {
num3[i] = num1[a];
a++;
}
} else if (a < num1.length) { //num2已经遍历完,无需比较,直接将剩余num1加入
num3[i] = num1[a];
a++;
} else if (b < num2.length) { //num1已经遍历完,无需比较,直接将剩余num2加入
num3[i] = num2[b];
b++;
}
}
System.out.println("排序后:" + Arrays.toString(num3));
return num3;
}
public static void main(String[] args) {
int[] arr1 = {1,2,3,4};
int[] arr2 = {1,2,5,6,7};
Sort.sort(arr1, arr2);
}
}