非降序数组

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/believe__sss/article/details/82621510

题目:

                     

public class Test {

    public static  void  main(String[] args) {
    int[] a={1,9,10};
    int[] b={3,12,41};
    int[] merge = MergeList(a,b);
    for(int i=0;i<merge.length;i++){
       System.out.print(merge[i]+" ");
   }
    
    }
    
    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;
       }
   
}
 

猜你喜欢

转载自blog.csdn.net/believe__sss/article/details/82621510