CodeGym /Java Blog /Random /Java Recursion
John Squirrels
Antas
San Francisco

Java Recursion

Nai-publish sa grupo

Ano ang Java Recursion?

Ang scenario kung saan tinatawag ng isang function o method ang sarili nito ay kilala bilang recursion at ang naturang function o method ay kilala bilang recursive function o recursive method. Ang diskarte na ito ay palaging ginagamit upang hatiin ang mga kumplikadong problema sa isang simple at mas madaling isulat. Ang isang simpleng halimbawa ay ang paglalagay ng dalawang salamin sa harap ng isa't isa at magsisimula silang sumasalamin sa isa't isa nang pabalik-balik na madali mong makikita.

Hindi Direktang Recursion

Ang halimbawa sa itaas ay kumakatawan sa hindi direktang recursion , iyon ay, function one calling function two at function two calling function one.

Direktang Recursion

Kapag paulit-ulit na tinawag ng isang pamamaraan ang sarili nito, tinatawag itong direktang recursion .

Humihinto na Kondisyon

Ngayon ay iisipin mo kung paulit-ulit na tumatawag sa sarili ang isang paraan at siguradong makakaharap ito ng error sa Stack Overflow . Oo, tama ka, tulad ng walang katapusan na pag-loop maaari itong mapunta sa isang walang katapusang recursion. Dapat tayong magbigay ng batayang kundisyon o kundisyon ng pagwawakas upang matigil ang walang katapusang recursion na ito, na kilala bilang kondisyong huminto, at ang kundisyong ito ay palaging ibinibigay sa loob ng recurse na paraan, na makikita natin nang detalyado sa halimbawa sa ibaba.

Halimbawa ng Recursion

class Recursion {

    static int factorial( int n ) {
        // base condition or termination condition
        if (n != 0)
        // here we are calling the recursive method
            return n * factorial(n-1);
        else
            return 1;
    }

    public static void main(String[] args) {
        // initializing the variables
        int number = 5, result;
        result = factorial(number);
        System.out.println(number + " factorial = " + result);

        // changing the value from 5 to 10
        number = 10;
        result = factorial(number); // recursive function call
        System.out.println(number + " factorial = " + result);
    }
}

Halimbawang Output

5 factorial = 120 10 factorial = 3628800
Sa halimbawa ng recurse method na ito, mayroon tayong function factorial na tinatawag mula sa pangunahing pamamaraan. Nagpasa kami ng value na 5 para makita kung ano ang factorial nito, which is 120. Ang factorial function na ito ay tumatawag muli sa sarili sa pamamagitan ng pagpasa ng value ng 4, na muling tumatawag at pumasa sa value ng 3, at iba pa, hanggang sa huminto ang kondisyon ay nakilala, na siyang halaga ng 0. Ganito rin ang nangyayari kapag binago namin ang halaga mula 5 hanggang 10.

Mga Kalamangan at Kahinaan ng Recursion

Ang isang recursive code ay simpleng isulat, i-debug, at panatilihin, na nakakatipid sa oras. Ngunit sa kabilang banda, sa bawat tawag ang memorya ay natupok para sa mga variable, at dahil dito maaari tayong maubusan ng memorya.

Konklusyon

Umaasa kaming naiintindihan mo ang Java recursion at kung paano ito ipatupad, pati na rin ang mga pakinabang at disadvantage nito. Huwag mag-atubiling magsanay at bumalik sa tuwing kailangan mo ng karagdagang tulong. Maligayang pag-aaral!
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION