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;
    }

    }

    /* 如有错误,欢迎批评指正 */
  • 相关阅读:
    php CI框架基础知识
    1206 多表单提交,强类型
    1205 Mvc的Razor语法
    1204 Mvc
    1117 邮件验证
    1115 模板页
    1113 Ajax
    1110 Jquary动画
    1108 Jquary
    1107 Linq高级查询
  • 原文地址:https://www.cnblogs.com/laydown/p/12799499.html
Copyright © 2011-2022 走看看