Rekurze Java: Rekurzivní metody (s příklady)

V tomto tutoriálu se dozvíte o rekurzivní funkci Java, jejích výhodách a nevýhodách.

V Javě je metoda, která si říká sama, známá jako rekurzivní metoda. A tento proces je známý jako rekurze.

Příkladem fyzického světa by bylo umístění dvou paralelních zrcadel proti sobě. Jakýkoli objekt mezi nimi by se odrazil rekurzivně.

Jak funguje rekurze?

Práce s Java rekurzí

Ve výše uvedeném příkladu jsme recurse()metodu nazvali zevnitř mainmetody. (volání normální metody). A uvnitř metody recurse () opět voláme stejnou metodu recurse. Toto je rekurzivní volání.

Abychom zastavili rekurzivní volání, musíme v metodě poskytnout některé podmínky. V opačném případě bude metoda volána nekonečně.

Proto používáme příkaz if… else (nebo podobný přístup) k ukončení rekurzivního volání uvnitř metody.

Příklad: Faktoriál čísla pomocí rekurze

 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); ) )

Výstup :

 4 faktoriál = 24

Ve výše uvedeném příkladu máme metodu pojmenovanou factorial(). Volá factorial()se z main()metody. s proměnnou number předanou jako argument.

Zde si všimněte prohlášení,

 return n * factorial(n-1);

factorial()Metoda volá sám. Zpočátku je hodnota n uvnitř 4 factorial(). Během dalšího rekurzivního volání se factorial()metodě předá 3 . Tento proces pokračuje, dokud n není rovno 0.

Když n je rovno 0, ifpříkaz vrátí hodnotu false, proto se vrátí 1. Nakonec se akumulovaný výsledek předá main()metodě.

Práce faktoriálního programu

Obrázek níže vám poskytne lepší představu o tom, jak se faktoriální program provádí pomocí rekurze.

Faktoriální program využívající rekurzi

Výhody a nevýhody rekurze

Když je provedeno rekurzivní volání, jsou v zásobníku přidělena nová úložiště pro proměnné. Protože se každé rekurzivní volání vrací, staré proměnné a parametry jsou ze zásobníku odebrány. Rekurze proto obvykle využívá více paměti a je obecně pomalá.

Na druhou stranu je rekurzivní řešení mnohem jednodušší a jeho psaní, ladění a údržba zabere méně času.

Doporučené čtení: Jaké jsou výhody a nevýhody rekurze?

Zajímavé články...