递归算法实例:
求最大值实例:
static int findMax(int[] array, int from) {
//采用的递归思路是:若求长度为L的数组最大值,即是求 数组前L-1个长度的最大值 和最后一个数组元素的相对较大值
if (from == array.length - 1) {
return array[from];
}
//使用了Math提供的最大函数方法
return Math.max(array[from], findMax(array, from + 1));
}
public static void main(String[] args) {
int[] arr = {8, 1, 2, 2, 3, 4, 5, 5, 6, 7};
System.out.println(findMax(arr, 0));
}
运行结果:
8
进程已结束,退出代码0
求最小值实例:
static int findMax(int[] array, int from) {
//采用的递归思路是:若求长度为L的数组最大值,即是求 数组前L-1个长度的最大值 和最后一个数组元素的相对较大值
if (from == array.length - 1) {
return array[from];
}
//使用了Math提供的最小函数方法
return Math.min(array[from], findMax(array, from + 1));
}
public static void main(String[] args) {
int[] arr = {8, 1, 2, 2, 3, 4, 5, 5, 6, 7};
System.out.println(findMax(arr, 0));
}
运行结果:
1
进程已结束,退出代码0