У овом упутству ћете научити о Јава рекурзивној функцији, њеним предностима и недостацима.
У Јави је метода која себе назива позната као рекурзивна метода. А, овај процес је познат као рекурзија.
Пример физичког света био би постављање два паралелна огледала окренута једно према другом. Било који предмет између њих рефлектовао би се рекурзивно.
Како функционише рекурзија?

У горњем примеру, позвали смо recurse()
метод изнутра main
. (позив нормалне методе). И, унутар методе рекурса (), поново позивамо исту методу понављања. Ово је рекурзивни позив.
Да бисмо зауставили рекурзивни позив, морамо да обезбедимо неке услове унутар методе. У супротном, метода ће бити позвана бесконачно.
Стога користимо наредбу иф … елсе (или сличан приступ) да бисмо прекинули рекурзивни позив унутар методе.
Пример: Факторијал броја који користи рекурзију
class Factorial ( static int factorial( int n ) ( if (n != 0) // termination condition return n * factorial(n-1); // recursive call else return 1; ) public static void main(String() args) ( int number = 4, result; result = factorial(number); System.out.println(number + " factorial = " + result); ) )
Излаз :
4 факторијел = 24
У горњем примеру имамо метод са именом factorial()
. Позива factorial()
се из main()
методе. са променљивом броја прослеђеном као аргумент.
Овде, приметите изјаву,
return n * factorial(n-1);
factorial()
Метод се зове. У почетку је вредност н 4 унутра factorial()
. Током следећег рекурзивног позива, factorial()
методу се прослеђује 3 . Овај процес се наставља све док н није једнако 0.
Када је н једнако 0, if
израз враћа фалсе, дакле враћа се 1. Коначно, акумулирани резултат се преноси на main()
методу.
Рад факторског програма
Слика испод ће вам дати бољу представу о томе како се факторски програм извршава помоћу рекурзије.

Предности и недостаци рекурзије
Када се изврши рекурзивни позив, на складишту се додељују нове локације за складиштење променљивих. Како се сваки рекурзивни позив враћа, старе променљиве и параметри се уклањају из стека. Дакле, рекурзија углавном користи више меморије и углавном је спора.
С друге стране, рекурзивно решење је много једноставније и треба мање времена за писање, отклањање грешака и одржавање.
Препоручено читање: Које су предности и недостаци рекурзије?