Van*_*nce 6 java recursion minimum
好吧,所以我一直试图用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
Run Code Online (Sandbox Code Playgroud)
小智 5
这是一个简化版本:
public static double min(double[] elements, int index) {
if (index == elements.length - 1) {
return elements[index];
}
double val = min(elements, index + 1);
if (elements[index] < val)
return elements[index];
else
return val;
}
Run Code Online (Sandbox Code Playgroud)
这段代码存在多种问题,包括:
findMin
。startIndex
每次调用 都会相同findMin
,因为currentIndex
被设置为startIndex
之前 startIndex
的值递增。 归档时间: |
|
查看次数: |
29600 次 |
最近记录: |