- 已知两个有序数组,要求把这两个有序数组归并到第三个数组中(第三个数组的长度是这两个有序数组长度之和),并保证归并后的数组仍然有序。
- 如{0,2,7,9} 和 {1,4,8,11,12,13,14} 这两个有序数组,归并后为{0,1,2,4,7,8,9,11,12,13,14}
- 代码实现
1 package cn.sun.it.review; 2 3 import java.util.Arrays; 4 5 public class Merge { 6 7 public static void main(String[] args) { 8 int[] arr1 = {0,2,7,9}; 9 int[] arr2 = {1,4,8,11,12,13,14}; 10 int[] arr3 = new int[arr1.length+arr2.length]; 11 12 mergeArray(arr1,arr2,arr3); 13 System.out.println(Arrays.toString(arr3)); 14 15 } 16 17 // 合并两个有序数组 18 private static void mergeArray(int[] arr1, int[] arr2, int[] arr3) { 19 int i=0,j=0; 20 int k=0; 21 while(i<arr1.length && j<arr2.length){ 22 if(arr1[i] < arr2[j]){ 23 arr3[k++] = arr1[i++]; 24 }else{ 25 arr3[k++] = arr2[j++]; 26 } 27 } 28 while(i<arr1.length){ 29 arr3[k++] = arr1[i++]; 30 } 31 while(j<arr2.length){ 32 arr3[k++] = arr2[j++]; 33 } 34 } 35 }
浙公网安备 33010602011771号