Итак, я работаю над этим вопросом, который просит меня использовать рекурсию для создания метода, который возвращает индекс наибольшего элемента в массиве целых чисел, используя этот заголовок «private static int findLargest (int [] items, int first , int последнее)». Это то, что я написал, и хотя он работает так, как задумано, он выдает StackOverflowError, если я передаю ему массив, содержащий более 5 элементов.
private static int findLargest (int [] items, int first, int last) {
if (first == last) {
return first;
}//end if
if (last - 1 == first) {
if (items[first] > items[last]) {
return first;
} else {
return last;
}//end if
}//end if
int firstHalf = findLargest (items, first, last / 2);
int secondHalf = findLargest(items, last / 2 + 1, last);
if (items[firstHalf] > items[secondHalf]) {
return firstHalf;
} else {
return secondHalf;
}//end if
}//end method findLargest
Подробнее здесь: https://stackoverflow.com/questions/784 ... n-an-array