java如何合并有序数组

2023-06-12,,

这篇文章主要介绍了java如何合并有序数组,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。

我们先来看看原题目:

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

思路分析:

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

实现代码:

public static int[] mergeSortArray(int[] a, int[] b){
        int length2 = a.length, length3 = b.length;
        int[] merge = new int[length2 + length3];
        int i = 0, j = 0, k = 0;
        while(i < length2 && j < length3){
            if(a[i] <= b[j]){
                merge[k++] = a[i++];
            }else{
                merge[k++] = b[j++];
            }
        }
        while(i < length2){
            merge[k++] = a[i++];
        }
        while(j < length3){
            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]);
        }
    }

运行结果:

1
2
2
3
4
5
7
8
9

感谢你能够认真阅读完这篇文章,希望小编分享java如何合并有序数组内容对大家有帮助,同时也希望大家多多支持本站,关注本站行业资讯频道,遇到问题就找本站,详细的解决方法等着你来学习!

《java如何合并有序数组.doc》

下载本文的Word格式文档,以方便收藏与打印。