zoukankan      html  css  js  c++  java
  • 合并K个有序数组-Java

    package com.rao.algorithm;
    
    import java.util.Arrays;
    
    /**
     * @author Srao
     * @className MergeK
     * @date 2019/12/20 23:24
     * @package com.rao.algorithm
     * @Description 合并K个有序数组
     */
    public class MergeK {
    
        public static int[] merge(int[] arr1, int[] arr2){
            int length1 = arr1.length;
            int length2 = arr2.length;
    
            int[] arr = new int[length1 + length2];
            int j = 0;
            int k = 0;
            int i = 0;
            while (j < length1 && k < length2){
                if (arr1[j] <= arr2[k]){
                    arr[i] = arr1[j];
                    i++;
                    j++;
                }else {
                    arr[i] = arr2[k];
                    i++;
                    k++;
                }
            }
    
            //把还没有进行合并的元素直接添加到新数组的后面
            while (j < length1){
                arr[i] = arr1[j];
                i++;
                j++;
            }
            while (k < length2){
                arr[i] = arr2[k];
                i++;
                k++;
            }
    
            return arr;
        }
    
        public static void main(String[] args) {
            int[] arr1 = {1,3,5,6};
            int[] arr2 = {1,2,5,7};
            int[] arr3 = {3,6,9,11};
            int[] arr4 = {5,7,13,17};
    
            int[] merge1 = merge(arr1, arr2);
            int[] merge2 = merge(arr3, arr4);
            int[] merge = merge(merge1, merge2);
            System.out.println(Arrays.toString(merge));
        }
    }

    和归并排序的思想差不多,归并排序也用到了合并有序数组

  • 相关阅读:
    office的高级应用
    python基础
    maven 资源导出失败问题
    单向环形链表和约瑟夫问题
    JDBC连接MySQL
    环形队列
    稀疏数组
    数据库锁机制和事务隔离级别总结
    context的简单应用
    JDBC基本使用方法
  • 原文地址:https://www.cnblogs.com/rao11/p/12075578.html
Copyright © 2011-2022 走看看