【发布时间】:2017-04-14 05:30:59
【问题描述】:
我正在尝试创建一种方法来使用递归搜索一维数组的最小值。它确实给了我一个输出,但无论数组是否包含“1”,它总是“1”。我对编程很陌生,感谢任何帮助。
public static int smallest(int[] array)
{
return smallestFrom(array, 0);
}
static int min = 500; //large number
private static int smallestFrom(int[] array, int i)
{
int x = array.length;
if (i < x && array[i] < min)
{
min = array[i];
i++;
smallestFrom(array, i);
}
else if (i < x && array[i] >= min)
{
i++;
smallestFrom(array, i);
}
return min;
}
输出:
2,4,6,1,6,3,8
Smallest: 1
43,76,3,23,95,23
Smallest: 1
【问题讨论】:
-
我刚刚跑了
int array [] = {43,76,3,23,95,23}; int smallest = smallestFrom(array, 0); System.out.println(smallest);,它返回了3 -
对我来说也一样,代码有效
-
@Aaron 如果它运行一次,它就可以工作。使用第二个输入数组运行它,就像 OP 所做的那样,它会中断
标签: java arrays recursion minimum