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

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值