美文网首页
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