美文网首页
java算法_有序数组合并

java算法_有序数组合并

作者: 王康健_0124 | 来源:发表于2019-04-11 14:31 被阅读0次

无序数组合并:

    public static void main(String[] args) {
        String[] str1 = {"1","2","3","7"};
        String[] str2 = {"4","5","6"};
        int str1Length = str1.length;
        int str2length = str2.length;
        str1 = Arrays.copyOf(str1, str1Length+str2length);//数组扩容
        System.arraycopy(str2, 0, str1, str1Length, str2length);
        System.out.println(Arrays.toString(str1));
    }

有两个有序数组,合并成一个有序数组,例如:arr1={1,3,4,7} arr2={2,5,8} 合并后为 {1,2,3,4,5,7,8} ,要求时间复杂度最小

有序数组合并:

   public static void main(String[] args) {
        int[] num1 = new int[]{1,3,4,7};
        int[] num2 = new int[]{2,5,8};
        int[] sum3 = new int[num1.length + num2.length];//定义一个新的数组,然后做对比后往新的数组中插入数据
        int a = 0, b = 0;
        for (int i = 0; i < sum3.length; i++) {//新数组for循环,次数等于数组长度
            if (a < num1.length && b < num2.length) {//if条件的含义:两个数组中数没有取完可以做对比
                if (num1[a] > num2[b]) {//如果a下标比b下标的数组大,b放到新数组中,b+1
                    sum3[i] = num2[b];
                    b++;
                } else {//反之,a下标数字比b小,a放到新数组中,a+1
                    sum3[i] = num1[a];
                    a++;
                }
            } else if (a < num1.length) {//如果不满足a < num1.length && b < num2.length说明有一个数字取完了数字,b取完,可以直接a放入新数组
                sum3[i] = num1[a];
                a++;
            } else if (b < num2.length) {//a取完,可以直接b放入新数组
                sum3[i] = num2[b];
                b++;
            }
        }
        System.out.println(Arrays.toString(sum3));
    }

相关文章

  • 对两个有序的数组进行合并

    1、算法描述: 有两个有序的整型数组arrayA,和arrayB,先要将它俩合并得到新的合并数组同样是有序的。示例...

  • java算法_有序数组合并

    无序数组合并: 有两个有序数组,合并成一个有序数组,例如:arr1={1,3,4,7} arr2={2,5,8} ...

  • 归并排序

    原理:将原序列划分为有序的n个序列,然后利用归并算法进行合并,合并之后即为有序序列。要点:分治,归并 将数组arr...

  • iOS面试之算法大全

    算法 算法内容如下: 字符串反转 链表反转 有序数组合并 Hash算法 查找两个子视图的共同父视图 求无序数组当中...

  • iOS面试之算法模块

    算法 算法内容如下: 字符串反转 链表反转 有序数组合并 Hash算法 查找两个子视图的共同父视图 求无序数组当中...

  • 算法必知 --- 归并排序(优化与案例)

    算法描述 使用归并排序进行升序排列。 示例: 算法设计 基本思路:借助额外空间,合并两个有序数组,得到更长的有序数...

  • 合并两个有序数组(C)

    合并两个有序数组,合并完之后仍有序:

  • 10-3 有序组合合并

    有序数组的合并. 保证合并之后仍然是有序的

  • 有序数组合并

    1、两个有序数组合并(产生新数组) 2、两个有序数组合并(返回原来某个数组)

  • 一道算法题之两个有序数组合并

    最近面试的时候遇到了一道算法题,两个有序数组合并,要求新的数组也是有序的 此题比较简单,主要是看数组元素进行对比,...

网友评论

      本文标题:java算法_有序数组合并

      本文链接:https://www.haomeiwen.com/subject/kdnziqtx.html