題目:
假设有序数组nums1包含M个整型元素,有序数组nums2包含N个****整型元素,试将nums2合并到nums1并使nums1保持有序性,可认为nums1数组的长度大于等于M+N,这样将不需要考虑数组越界问题,不可用归并排序法。
class solution {
static int M = 8;
static int N = 10;
static int B = M+N;
public static void main(String[] args) {
int[] nums2 = new int[]{2,4,6,8,10,11,12,13,100,190};
int[] nums1 = new int[B];
int[] temp = new int[]{1,3,5,7,9,50,69,78};
System.arraycopy(temp,0,nums1,0,M);
//算法实现
//***************
for(int i =0;i<N;i++){
for(int j =0;j<B;j++){
if(nums1[j] > nums2[i]){
move2Right(nums1,j,M+i);
nums1[j] = nums2[i];
break;
}else{
if(j == M+i){
for(;j<B;j++){
nums1[j] = nums2[i];
i++;
}
}
}
}
}
//****************
System.out.println("排序: ");
for(int i = 0; i<B;i++){
System.out.println(nums1[i]);
}
}
public static void move2Right(int[] array , int sIndex,int eIndex){
if(eIndex >= array.length)
return;
for(int i = eIndex; i >= sIndex ; i--){
array[i +1] = array[i];
}
}
}