合并两个有序升序的整数数组A和B变成一个新的数组。新数组也要有序。

  • Post author:
  • Post category:其他

在我认为这道题相比前两道是比较简单的,首先可以分析一下这道题的大体思路,要求新数组是有序的,在整合之后我就得排序了,但是前提是合并的是两个有序的数组,这就意味着,我们只需要将两个数组放入新数组时,只要一个小的时候,就不用继续往下比了,前期我是这种思路,后来,看了网上的思路之后,其实有更简单的方法就可以将做出来了。

具体代码:

public  static  int[]  getNewArray(int arr1[],int arr2[]){
    int[] newArray=new int[arr1.length+arr2.length];
    for(int i=0;i<arr1.length;i++){
        newArray[i]=arr1[i];

    }for(int j=0;j<arr2.length;j++){
        newArray[arr1.length+j]=arr2[j];
    }
    //对新数组 进行排序
    Arrays.sort(newArray);
    return newArray;
}

分析:只要将两个数组,分别存放到新数组就好了,然后通过Arrays这个类的sort函数,将其排序就好了。

但是注意的是数组的下标,有时候就会出界,我开始遇到的是,数组长度是对的,但是数组没有把最后一个数值存放到新的数组中,这是因为,遍历的时候,i和j的最大值都是length-1而不是length,所以每次都取不到最后一个的值。

还有一种是将组成的新数组,通过排序的算法实现数组的有序,用冒泡排序,选择排序都可以实现数组的有序。自己封装一个排序的函数。

可能还有其他的方式,有研究出来的,可以相互借鉴一下。


版权声明:本文为weixin_44895706原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。