import java.util.Arrays;
/**
*合并两个排好序的整形数组,合并之后也是排好序的
*如数组一[1,5,6,8,10,21] 和数组二[2,3,5,7,9,11,23,34]
*合并之后[1, 2, 3, 5, 5, 6, 7, 8, 9, 10, 11, 21, 23, 34]
*注意性能,数组长度不定
*wangxuekai
*2015-12-24 21:17:33
*
*/
class ConcatArray
{
public static void main(String[] args)
{
int[] ins_1 = {1,5,6,8,10,21};
int[] ins_2 = {2,3,5,7,9,11,23,34};
System.out.println(Arrays.toString(concat(ins_1,ins_2)));
}
public static int[] concat(int[] ins_1,int[] ins_2){
//创建一个空的数组,长度为两个数组的和,该数组为和并数组
int[] ins = new int[ins_1.length+ins_2.length];
//定义第一个数组的角标,初始值为0
int index_1 = 0;
//定义第二个数组的角标,初始值为0
int index_2 = 0;
//for循环,循环次数为和并数组的大小,依次判断数组一和数组二的值,把最小值赋给和并数组
for(int index =0; index < ins.length; index++){
//首先判断数组一[ins_1]角标位index_1是否小于数组一[ins_1]的长度
//并且数组一[ins_1]角标位index_1的值是否小于数组二[ins_2]角标位index_2的值
//如果成立,则将数组一[ins_1]角标位index_1的值放入合并数组index位置,index_1自增1
//否则将数组二[ins_2]脚标位index_2的值放入合并数组index位置,index_2自增1
if(index_1 < ins_1.length && ins_1[index_1] < ins_2[index_2]){
ins[index] = ins_1[index_1];
index_1++;
}else{
ins[index] = ins_2[index_2];
index_2++;
}
}
return ins;
}
}
合并两个有序数组,合并之后也是有序数组
最新推荐文章于 2024-05-07 16:51:53 发布