合并两个有序数组,合并之后也是有序数组

来源:互联网 发布:java开发环境的搭建 编辑:程序博客网 时间:2024/05/16 11:55
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;    } }
0 0
原创粉丝点击