Java-рекурсия
Рекурсия Java
В этом руководстве вы узнаете о рекурсивной функции Java, ее преимуществах и недостатках.
В Java метод, который вызывает сам себя, называется рекурсивным методом. И этот процесс известен как рекурсия.
Примером физического мира может быть размещение двух параллельных зеркал друг против друга. Любой объект между ними будет отражен рекурсивно.
<час>Как работает рекурсия?
<рисунок> В приведенном выше примере мы вызвали 05
метод изнутри 13
метод. (обычный вызов метода). И внутри метода recurse() мы снова вызываем тот же метод recurse. Это рекурсивный вызов.
Чтобы остановить рекурсивный вызов, нам нужно указать некоторые условия внутри метода. В противном случае метод будет вызываться бесконечно.
Следовательно, мы используем оператор if...else (или аналогичный подход) для завершения рекурсивного вызова внутри метода.
<час>Пример. Факториал числа с использованием рекурсии
06
Вывод :
15пре>В приведенном выше примере у нас есть метод с именем
26
. .38
вызывается из45
метод. с числом переменная, переданная в качестве аргумента.Здесь обратите внимание на утверждение
23
55
метод вызывает сам себя. Изначально значение n равно 4 внутри62
. Во время следующего рекурсивного вызова 3 передается в79
метод. Этот процесс продолжается до тех пор, пока n равно 0.Когда n равно 0,
<час>85
оператор возвращает false, поэтому возвращается 1. Наконец, накопленный результат передается в99
метод.Работа программы Факториал
Изображение ниже даст вам лучшее представление о том, как факториальная программа выполняется с использованием рекурсии.
<рисунок> <час>Преимущества и недостатки рекурсии
При выполнении рекурсивного вызова в стеке выделяются новые места хранения для переменных. По мере возврата каждого рекурсивного вызова старые переменные и параметры удаляются из стека. Следовательно, рекурсия обычно использует больше памяти и обычно работает медленно.
С другой стороны, рекурсивное решение гораздо проще и требует меньше времени на написание, отладку и поддержку.
Рекомендуемая литература:каковы преимущества и недостатки рекурсии?
java
- Операторы Java
- Java-интерфейс
- Java-проба с ресурсами
- Java-аннотации
- Типы аннотаций Java
- Метод String Length() в Java:как найти на примере
- Метод Java String charAt() с примером
- Метод Java String endWith() с примером
- Java String replace(), replaceAll() и replaceFirst()
- Как перевернуть строку в Java с помощью рекурсии