I denne veiledningen vil du lære om Java rekursiv funksjon, fordeler og ulemper.
I Java er en metode som kaller seg kjent som en rekursiv metode. Og denne prosessen er kjent som rekursjon.
Et fysisk eksempel på verden ville være å plassere to parallelle speil mot hverandre. Ethvert objekt i mellom dem vil reflekteres rekursivt.
Hvordan fungerer Rekursjon?

I eksemplet ovenfor har vi kalt recurse()
metoden fra innsiden av main
metoden. (normal metodeanrop). Og innenfor recurse () -metoden kaller vi igjen den samme recurse-metoden. Dette er en rekursiv samtale.
For å stoppe den rekursive samtalen, må vi gi noen forhold i metoden. Ellers vil metoden kalles uendelig.
Derfor bruker vi setningen if … else (eller lignende tilnærming) for å avslutte det rekursive anropet i metoden.
Eksempel: Faktor av et tall ved bruk av rekursjon
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); ) )
Utgang :
4 faktor = 24
I eksemplet ovenfor har vi en metode som heter factorial()
. Det factorial()
kalles fra main()
metoden. med tallvariabelen som argument.
Her, legg merke til uttalelsen,
return n * factorial(n-1);
Den factorial()
metoden kaller seg selv. Opprinnelig er verdien av n 4 inni factorial()
. I løpet av neste rekursive samtale sendes 3 til factorial()
metoden. Denne prosessen fortsetter til n er lik 0.
Når n er lik 0, if
returnerer utsagnet falsk, derav 1 returneres. Til slutt overføres det akkumulerte resultatet til main()
metoden.
Arbeid med faktorprogram
Bildet nedenfor vil gi deg en bedre ide om hvordan faktorprogrammet gjennomføres ved hjelp av rekursjon.

Fordeler og ulemper ved rekursjon
Når et rekursivt anrop foretas, tildeles nye lagringssteder for variabler på bunken. Når hvert rekursive anrop returnerer, fjernes de gamle variablene og parametrene fra stakken. Derfor bruker rekursjon generelt mer minne og er generelt tregt.
På den annen side er en rekursiv løsning mye enklere og tar kortere tid å skrive, feilsøke og vedlikeholde.
Anbefalt lesing: Hva er fordelene og ulempene med rekursjon?