- 已知两个有序数组,要求把这两个有序数组归并到第三个数组中(第三个数组的长度是这两个有序数组长度之和),并保证归并后的数组仍然有序。
- 如{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 }