Java递归方法求最大值
时间: 2024-10-02 16:00:21 浏览: 27
java代码-递归-求最大值
在Java中,递归方法可以用来找出数组中的最大值。这里有两个不同的实现:
1. **基于分治法**[^1]:
```java
public static int recursionMaxValue(int[] arr, int left, int right) {
if (left == right) { // 基线条件:只有一个元素时直接返回该元素
return arr[left];
} else {
int mid = (left + right) / 2;
// 递归调用,取左半部分和右半部分的最大值并返回较大者
return Math.max(recursionMaxValue(arr, left, mid), recursionMaxValue(arr, mid + 1, right));
}
}
```
你可以这样调用它来求解数组 `arr` 的最大值:
```java
int[] arr = {3, 5, 6, 100, 9, 10, 12};
System.out.println("max: " + recursionMaxValue(arr, 0, arr.length - 1)); // 输出:100
```
2. **遍历法**:
```java
public static int maxValue(int[] arr) {
int tmp = 0; // 初始化临时变量为0
for (int i = 0; i < arr.length; i++) {
tmp = tmp > arr[i] ? tmp : arr[i]; // 比较当前元素与tmp,如果大于则更新tmp
}
return tmp;
}
```
这种方法通过迭代数组元素,逐个比较更新最大值。
阅读全文