面试必考算法 - 合并两个有序数组成一个有序数组

最近看到一个算法题目,有两个数组a[]和b[],将它们合并成一个有序的数组c[]

自己实现了下代码,在此记录下。

代码如下:

/**
 * @ClassName Sort
 * @Description TODO
 * @Author chenchunji
 * @Date 2019/2/16 19:39
 **/
public class Sort {
    public static int[] MergeList(int a[],int b[])
    {
        int result[];
        result = new int[a.length+b.length];
        //i:a数组下标    j:b数组下标  k:新数组下标
        int i=0,j=0,k=0;
        while(i<a.length && j<b.length){
            if(a[i] <= b[j]) {
                result[k++] = a[i++];
            }else{
                result[k++] = b[j++];
            }
        }

        /* 后面连个while循环是用来保证两个数组比较完之后剩下的一个数组里的元素能顺利传入 *
         * 此时较短数组已经全部放入新数组,较长数组还有部分剩余,最后将剩下的部分元素放入新数组,大功告成*/
        while(i < a.length){
            result[k++] = a[i++];
        }

        while(j < b.length){
            result[k++] = b[j++];
        }

        return result;
    }
}

喜欢本文的朋友们,欢迎关注微信公众号“Java面试达人”,收看更多精彩内容

也可关注微博 “程序员阿九”,收看更多精彩内容

猜你喜欢

转载自blog.csdn.net/longzhongxiaoniao/article/details/88074593