CodeGym /Blog Java /rawak /Java Recursion
John Squirrels
Tahap
San Francisco

Java Recursion

Diterbitkan dalam kumpulan

Apakah Java Recursion?

Senario di mana fungsi atau kaedah memanggil dirinya sendiri dikenali sebagai rekursif dan fungsi atau kaedah sedemikian dikenali sebagai fungsi rekursif atau kaedah rekursif. Pendekatan ini sentiasa digunakan untuk memecahkan masalah yang kompleks kepada yang mudah dan lebih mudah untuk ditulis. Contoh mudah ialah meletakkan dua cermin di hadapan satu sama lain dan ia akan mula memantulkan satu sama lain secara rekursif yang boleh anda lihat dengan mudah.

Rekursi Tidak Langsung

Contoh di atas mewakili rekursi tidak langsung , iaitu fungsi satu memanggil fungsi dua dan fungsi dua memanggil fungsi satu.

Rekursi Langsung

Apabila kaedah memanggil dirinya berulang kali, ia dipanggil rekursi langsung .

Keadaan Terhenti

Sekarang anda akan berfikir jika kaedah memanggil sendiri lagi dan lagi maka pasti ia akan menghadapi ralat Limpahan Tindanan . Ya, anda betul, seperti gelung tak terhingga ia boleh masuk ke rekursi tak terhingga. Kita mesti menyediakan syarat asas atau syarat penamatan untuk menghentikan pengulangan tak terhingga ini, yang dikenali sebagai keadaan terhenti, dan syarat ini sentiasa disediakan di dalam kaedah pengulangan, yang akan kita lihat secara terperinci dalam contoh di bawah.

Contoh Rekursi

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

Contoh Output

5 faktorial = 120 10 faktorial = 3628800
Dalam contoh kaedah berulang ini kita mempunyai faktorial fungsi yang dipanggil daripada kaedah utama. Kami melepasi nilai 5 untuk melihat apakah faktorialnya, iaitu 120. Fungsi faktorial ini memanggil dirinya semula dengan menghantar nilai 4, yang sekali lagi memanggil dan melepasi nilai 3, dan seterusnya, sehingga keadaan berhenti adalah bertemu, iaitu nilai 0. Perkara yang sama berlaku apabila kita menukar nilai daripada 5 kepada 10.

Kelebihan dan Kekurangan Rekursi

Kod rekursif adalah mudah untuk ditulis, nyahpepijat dan diselenggara, yang menjimatkan masa. Tetapi sebaliknya, dengan setiap panggilan memori digunakan untuk pembolehubah, dan kerana ini kita boleh kehabisan ingatan.

Kesimpulan

Kami harap anda memahami rekursi Java dan cara melaksanakannya, serta kelebihan dan kekurangannya. Jangan ragu untuk berlatih dan kembali apabila anda memerlukan lebih banyak bantuan. Selamat belajar!
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION