zoukankan      html  css  js  c++  java
  • 求数组中的最大值,用递归实现


    import java.util.Arrays;

    /**
    * 求arr[L...R]数组中最大值,用递归实现
    */
    public class GetMaxFromArray {

    public static void main(String[] args) {
    int maxNum = 100;
    int maxSize = 100;
    // 生成随机数组
    int[] arr = generateArray(maxNum, maxSize);
    System.out.println(getMax(arr, 0, arr.length - 1));
    Arrays.sort(arr);
    System.out.println(Arrays.toString(arr));
    }

    public static int getMax(int[] arr, int left, int right) {
    if (left == right) {
    return arr[left];
    }
    // 此处移位操作注意加(),因为算数运算符 + 的优先级高于移位操作>> ,当arr.length>3 会导致异常
    int mid = left + ((right - left) >> 1);
    int lMax = getMax(arr, left, mid);
    int rMax = getMax(arr, mid + 1, right);
    return Math.max(lMax, rMax);
    }

    /**
    * 生成随机数组
    *
    * @param maxNum 最大数
    * @param maxSize 数组最大大小
    * @return 随机数组
    */
    private static int[] generateArray(int maxNum, int maxSize) {
    int[] arr = new int[(int) (maxSize * Math.random())];
    for (int i = 0; i < arr.length; i++) {
    arr[i] = (int) (maxNum * Math.random()) - (int) (maxNum * Math.random());
    }
    return arr;
    }

    }

    /* 如有错误,欢迎批评指正 */
  • 相关阅读:
    OpenWrt 上安装 AdGuard Home
    java网络编程
    如何进行数据库选型
    银行业务中台
    数仓|大数据时代,维度建模过时了吗?
    spqrk相关
    Apache Doris在美团外卖数仓中的应用实践
    hadoop的简单规划
    数据中台建设
    银行数仓分层
  • 原文地址:https://www.cnblogs.com/laydown/p/12799499.html
Copyright © 2011-2022 走看看