/**
* 将两有序数组合并成一个有序数组
*
* @param aux 合并的数组 长度=ar1.length+ar2.length
* @param ar1 有序数组1
* @param ar2 有序数组2
* 思路:
* 1.声明数组
* 2.数组ar1中的第一个坐标小于数组ar2中第一个坐标将ar1中第一个元素放到 大的数组中第一个位置
* 3.大数组位置右移一位,ar1第一个数组右移一位,否则 ar2的第一个元素存入第一位,ar2右移
* 4.以上排序未判断数组下标越界
* 判断下思路:
* 如果ar1排序完成,只需要对ar2排序
* 否则ar2排序完成,只需要对ar1排序
*
*/
public static void merge(int[] aux,int[] ar1,int[] ar2) {
int i=0;//控制ar1最左未被排序坐标
int j=0;//控制ar2最左未被排序坐标
for(int k=0;k<aux.length;k++) {//k控制数组坐标越界
if(i>=ar1.length) {
aux[k]=ar2[j];
j++;
}else if(j>=ar1.length) {
aux[k] = ar1[i];
i++;
}else if(ar1[i]<=ar2[j]) {//排序思路
aux[k]=ar1[i];
i++;
}else {
aux[k]=ar2[j];
j++;
}
}
}