我已經創建了一個程序,它使用遞歸在數組中找到最小值,但它不能正常工作。我不知道爲什麼,但它沒有返回輸出中的實際最低值。這裏是我的代碼:我的遞歸程序找到一個數組中的最小值不起作用
package weekFour;
public class MinInt {
static int[] arr = {24,52,74,9,34,23,64,34};
static int min;
static int minIndex;
public static void main(String[] args){
MinInt m = new MinInt();
System.out.println("Minimum is :" + m.findMin(arr, 0, min));
}
public int findMin(int[] arr, int index, int min){
if(index <= (arr.length - 1)){ //makes sure you only check elements in the array
if(arr[index] < min){ //if value is smaller than current min
min = arr[index]; //set new min
minIndex = index; //records position of min in array
}
return findMin(arr, index + 1, min); //recursive method call
}
System.out.println("The Minimum Value in this Array is " + min + " at Index " + minIndex);
return min;
}
}
我的輸出是:
The Minimum Value in this Array is 0 at Index 0
Minimum is :0
你開始0'的'初始'min'。你如何期望你的陣列中的任何東西都比那個小?將您的起始最小值設置爲「Integer.MAX_VALUE」。 – azurefrog
啊我看到謝謝 –
提供min作爲你的數組的第一個元素。在你的情況下,最小值爲0. – user3509208