Я изучаю рекурсию. Я знаю основы и понимаю, как это работает, но я столкнулся с проблемой. Я написал код, чтобы найти позицию значения мин в массиве с помощью рекурсии, которая:Использование рекурсии для определения положения минимального значения
public static int findMinPosition(int[] list, int position)
{
int minPosition = 0;
if(position == list.length)
{
}
else if(position != list.length)
{
minPosition = findMinPosition(list, position+1);
if(list[position] < list[minPosition])
{
return minPosition = position;
}
}
return minPosition;
}
Это отлично работает, но им не уверен, как это сделать. Я все понимаю, кроме minPosition = findMinPosition(list, position+1);
. Я думал, что это просто даст возвращаемое значение из метода, поэтому я изначально также называл этот метод, так как это точка рекурсии. Но мне кажется, что мне нужна эта строка кода ... так minPosition = findMinPosition(list, position+1);
вызов метода?
Извините за грубое объяснение и любой помощи полезен
то, что у вас есть, написано в замешательстве. не используйте локальные переменные. передавать все состояния через вызовы параметров. Лучшим советом было бы получить копию Little Schemer и прочитать ее. –