(1)使用Java特定的函数将两个已经排好序的数据 合并成一个排好序的数组
//m表示的num1的数组长度 n表示的是num2的数组长度
public static int []merge(int []num1,int m,int []num2,int n){
//要复制的数组 开始位置 复制到那个数组中 从那个位置开始 复制多少个元素
System.arraycopy(num2,0,num1,m,n);
Arrays.sort(num1);
return num1;
}
(2)使用双指针法进行遍历比较后排序
public static int []merge1(int []num1,int m,int []num2 ,int n)
{
int []array = new int [m+n];
int k =0,i=0,j=0;
while(i<m&&j<n)
{
if(num1[i]<num2[j])
array[k++]=num1[i++];
else
array[k++] = num2[j++];
}
while(i<m)
array[k++] = num1[i++];
while(j<n)
array[k++]=num1[j++];
return array;
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)