美文网首页
java合并两个有序数组

java合并两个有序数组

作者: zhouzhuo933 | 来源:发表于2018-01-22 09:14 被阅读0次
/**
 * Created by zhouzhuo on 2018/1/22.
 * 题目:有两个有序数组a,b,现需要将其合并成一个新的有序数组
 *
 *
 * 简单的思路就是先放到一个新的数组中,在排序。但是这样没有体现任何算法,这里考的不是快速排序等排序算法。关键是如何利用有序
 * 这个已知条件。可以这样想,假设两个源数组的长度不一样,那么假设其中短的数组用完了,即全部放入到新数组中去了,那么长数组中剩下的那一段
 * 就可以直接拿来放到新数组中去了*/

public class SortTwoArray {
    public int[] sort(int[] a,int[] b){
        int[] c = new int[a.length+b.length];
        int i=0,j=0,k = 0;
        while (i<a.length&&j<b.length){
            if(a[i]>=b[j]){
                c[k++] = b[j++];
            }else {
                c[k++] = a[i++];
            }
        }
     
        while (j<b.length){
            c[k++] = b[j++];
        }
        while (i<a.length){
            c[k++] = a[i++];
        }
        return c;

    }

}

相关文章

网友评论

      本文标题:java合并两个有序数组

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