使用递归查找数组的最小值?
好吧,所以我一直试图用Java包围递归,我可以完成简单的任务,如求和,倒转等等,但我一直在努力做这个练习:
我试图使用递归找到数组中的最小数字但仍然得到0.0的答案。
我对递归的理解是,我需要增加一个元素,然后提供一个结束递归的基本情况。当我必须返回一个值时,我想我搞砸了,什么时候最好调用递归方法。
这是我到目前为止:
public static double findMin(double[] numbers, int startIndex, int endIndex) {
double min;
int currentIndex = startIndex++;
if (startIndex == endIndex)
return numbers[startIndex];
else {
min = numbers[startIndex];
if (min > numbers[currentIndex]) {
min = numbers[currentIndex];
findMin(numbers, currentIndex, endIndex);
}
return min;
}
} //findMin
没有找到相关结果
已邀请:
4 个回复
门锑腺潮
调用的结果。 对于每次调用
,
都是相同的,因为在
递增之前,
被设置为
的值。 如果数组中索引1处的数字是< =索引0处的数字,则只返回该数字,甚至不进行递归调用。
贡炮逗握惫
,但之后不再使用其返回值。 (1)整个数组的最小值,(2)第一个元素和(3)除第一个元素之外的所有内容的最小值之间的关系是什么?
联海
旦彤
- 你会想念你的第一个元素。通常,您不希望修改递归函数的输入。当你准备再次调用函数时,取消输入并生成新值 - 即'findMin(numbers,currentIndex + 1,endIndex)'