归并数组

归并数组

归并的思想

小案例:

给你两个有序数组,合并成一个大的有序的数组。

(1)思路一:

创建一个大的数组,长度为两个数组之和,然后冒泡排序。

代码不写了。

(2)思路二:

归并思路如下:

1、同时遍历两个数组,遍历的当前值进行比较,小的放入新数组。

2、放进去之后,数据继续遍历,指针后移。

3、经过多次遍历

public class Merge {
    public static void main(String[] args) {
        int[] a = {1, 3, 5, 7, 8};
        int[] b = {2, 4, 6, 9, 10};
        //i和j代表a队和b队的选手
        int i = 0;
        int j = 0;
        //创建一个大数组
        int[] merge = new int[a.length + b.length];

        while (i < a.length || j < b.length) {
            if (i == a.length) {
                merge[i + j] = b[j];
                j++;
                continue;//结束当前循环后面的不执行,重新循环
            }
            if (j == b.length) {
                merge[i + j] = a[i];
                i++;
                continue;
            }
            if (a[i] < b[j]) {
                merge[i + j] = a[i];
                i++;
            } else {
                merge[i + j] = b[j];
                j++;
            }
        }

        for (int m = 0; m < merge.length; m++) {
            System.out.println(merge[m]);
        }
    }

}
posted @ 2022-05-07 22:04  追风的羊  阅读(78)  评论(0)    收藏  举报