使用递归查找数组的最小值?

万斯:

好的,所以我一直在尝试用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
ColinD:

此代码中存在各种问题,包括:

  • 您不使用递归findMin调用的结果
  • startIndex对于的每次调用都会相同findMin,因为currentIndex设置为startIndex 之前 的值startIndex会增加。
  • 如果数组中索引1处的数字<=索引0处的数字,则只需返回该数字,而无需进行递归调用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章