小兔网

java合并有序数组的高效方法是什么

我们先来看看原题目:

(学习视频分享:java教学视频

/** *  ClassName: MergeSortArray <br/> *  Function: 合并有序数组<br/> *   [1, 2, 2, 5] *   [3, 4, 7, 8, 9] * * */

思路分析:

双指针移动从前往后的比较,然后把剩余的数据再复制到合并数组里,其实这也是归并排序的最核心的代码,归并排序(先拆分后合并)分而治之中治的环节。

实现代码:

public static int[] mergeSortArray(int[] a, int[] b){        int length1 = a.length, length2 = b.length;        int[] merge = new int[length1 + length2];        int i = 0, j = 0, k = 0;        while(i < length1 && j < length2){            if(a[i] <= b[j]){                merge[k++] = a[i++];            }else{                merge[k++] = b[j++];            }        }        while(i < length1){            merge[k++] = a[i++];        }        while(j < length2){            merge[k++] = b[j++];        }        return merge;    }    public static void main(String[] args) {        int[] a = {1, 2, 2, 5};        int[] b = {3, 4, 7, 8, 9};        int[] merge = mergeSortArray(a, b);        for(int i = 0; i < merge.length; i++){            System.out.println(merge[i]);        }    }

运行结果:

122345789

相关推荐:java入门教程

以上就是java合并有序数组的高效方法是什么的知识。速戳>>知识兔学习精品课!