-3
給定一個未排序的數組,查找最大值和最小值。我試圖以遞歸,分而治之的方式來做到這一點,但我不斷收到堆棧溢出錯誤。我調試,我不斷收到我的遞歸調用中的錯誤,但不知道什麼是錯的或如何解決它。遞歸 - 堆棧溢出錯誤
我確實有最小和最大的靜態變量。
感謝您的信息和幫助!
static void findMaxMin(int[] array, int start, int end)
{
if (end == 2)
{
setMaxMin(array);
}
else
{
int mid = ((end)/2);
findMaxMin(array, start, mid);
findMaxMin(array, mid + 1, end);
}
}
private static void setMaxMin(int[] array)
{
if (array[0] > array[1])
{
max = array[0];
min = array[1];
}
else
{
min = array[0];
max = array[1];
}
}
看來你已經錯過了出口點,你需要知道什麼時候該代碼應停止。例如,開始> =結束。 – Prisoner
我懷疑你的遞歸基礎條件。 –
那麼'setMaxMin'只能查看前兩個索引,所以如果數組更長,那麼它將如何工作, – juharr