太自由

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  1. 已知两个有序数组,要求把这两个有序数组归并到第三个数组中(第三个数组的长度是这两个有序数组长度之和),并保证归并后的数组仍然有序。
  2. 如{0,2,7,9} 和 {1,4,8,11,12,13,14} 这两个有序数组,归并后为{0,1,2,4,7,8,9,11,12,13,14}
  3. 代码实现
 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 }

 

posted on 2021-04-09 13:14  太自由  阅读(146)  评论(0)    收藏  举报