Đệ quy Java – Codefly.Vn

Trong hướng dẫn này, bạn sẽ tìm hiểu về hàm đệ quy Java, những ưu điểm và nhược điểm của nó.

Trong Java, một phương thức gọi chính nó được gọi là một phương thức đệ quy. Và, quá trình này được gọi là đệ quy.

Một ví dụ về thế giới vật chất là đặt hai gương song song đối diện nhau. Bất kỳ đối tượng nào ở giữa chúng sẽ được phản ánh một cách đệ quy.

Cách hoạt động của Đệ quy?

Hoạt động của Java đệ quy

Trong ví dụ trên, chúng ta đã gọi recurse()phương thức từ bên trong mainphương thức. (gọi phương thức bình thường). Và, bên trong phương thức recurse (), chúng ta lại gọi cùng một phương thức đệ quy. Đây là một cuộc gọi đệ quy.

Để dừng cuộc gọi đệ quy, chúng ta cần cung cấp một số điều kiện bên trong phương thức. Nếu không, phương thức sẽ được gọi là vô hạn.

Do đó, chúng ta sử dụng câu lệnh if … else (hoặc cách tiếp cận tương tự) để kết thúc lệnh gọi đệ quy bên trong phương thức.

Ví dụ: Giai thừa của một số sử dụng đệ quy

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

Đầu ra :

4 factorial = 24

Trong ví dụ trên, chúng ta có một phương thức được đặt tên factorial(). Các factorial()được gọi từ các main()phương pháp. với số biến thông qua như là một cuộc tranh cãi.

Ở đây, hãy chú ý tuyên bố,

return n * factorial(n-1);

Các factorial()phương pháp được gọi riêng của mình. Ban đầu, giá trị của n là 4 bên trong factorial(). Trong lần gọi đệ quy tiếp theo, 3 được chuyển cho factorial()phương thức. Quá trình này tiếp tục cho đến khi n bằng 0.

Khi n bằng 0, ifcâu lệnh trả về false do đó 1 được trả về. Cuối cùng, kết quả tích lũy được chuyển đến main()phương thức.

Hoạt động của Chương trình Giai thừa

Hình ảnh dưới đây sẽ cung cấp cho bạn một ý tưởng tốt hơn về cách chương trình giai thừa được thực hiện bằng cách sử dụng đệ quy.Chương trình giai thừa sử dụng Đệ quy

Ưu điểm và nhược điểm của đệ quy

Khi một cuộc gọi đệ quy được thực hiện, các vị trí lưu trữ mới cho các biến sẽ được cấp phát trên ngăn xếp. Khi mỗi cuộc gọi đệ quy trả về, các biến và tham số cũ sẽ bị xóa khỏi ngăn xếp. Do đó, đệ quy thường sử dụng nhiều bộ nhớ hơn và nói chung là chậm.

Mặt khác, giải pháp đệ quy đơn giản hơn nhiều và tốn ít thời gian hơn để viết, gỡ lỗi và bảo trì.

Đề xuất Đọc: Ưu điểm và nhược điểm của đệ quy là gì?