Chia Sẻ

Recursion Là Gì ? Chương Trình Đệ Quy Hoạt Động Recursive Function Và Một Vài Ví Dụ

Trong bài viết này, bạn sẽ tìm hiểu cách để tạo ra hàm đệ quy (recursive function), một hàm mà tự gọi chính nó. Đồng thời, bạn cũng sẽ tìm hiểu thêm về điểm thuận lợi và điểm bất lợi của chúng.Bạn đang xem: Recursion là gì

Một phương thức đệ quy (recursive method) là một phương thức mà nó tự gọi chính nó. Và kỹ thuật này được biết là kỹ thuật đệ quy (recursion)

Một ví dụ vật lý thực tế là việc đặt hai tấm gương hướng song song vào nhau. Bất kì vật thể nào ở giữa chúng sẽ phản chiếu một cách đệ quy.

Đang xem: Recursion là gì

*

Trong chương trình ở trên, ban đầu, phương thức recurse()được gọi từ bên trong phương thức chính (gọi thông thường normal method call)

Đồng thời, phương thức recurse()lại được gọi từ bên trong phương thức recurse() kia. Đây là cuộc gọi đệ quy recursive call.

Kỹ thuật đệ quy tiếp tục cho tới khi vài điều kiện được đáp ứng để ngăn chặn nó khỏi việc thực thi. Nếu không, đệ quy sẽ xảy ra vô hạn.

Do đó, để tránh việc đệ quy vô hạn, câu lệnh điều kiện if…else có thể được sử dụng một nhánh để thực hiện gọi đệ quy còn nhánh còn lại thì ko.

1. Lấy ví dụ: Giai thừa của một số sử dụng kỹ thuật đệ quy

/*** Cafedev- Kênh thông tin IT hàng đầu Việt Nam** author cafedevn* Contact: cafedevn4 factorial = 24Đầu tiên, phương thức factorial được gọi từ phương thức main với number được truyền một đối số.

XEM THÊM:  Ldk Là Gì ? Thuê Nhà Ở Nhật: Nhà 2Dk, 3Ldk,

Xem thêm:

Bên cạnh phương thức factorial, giá trịn của n là 4 lúc đầu. Trong suốt lần gọi đệ quy tiếp theo, số 3 được truyền tới phương thức factorial. Quá trình này tiếp diễn cho tới khi n bằng 0.

Khi n bằng 0, điều kiện if sẽ ngừng và phần else sẽ được thực thi trả về 1 và kết quả tích lũy sẽ được truyền tới phương thức main.

2. Những ưu điểm và nhược điểm của kỹ thuật đệ quy

Khi một lần gọi đệ quy được thực hiện, bộ nhớ mới được cấp cho các biến được phân vùng trên stack. Khi mỗi lần gọi đệ quy vòng lại, các biến và tham số cũ bị xóa khỏi stack. Do đó, nhìn chung, kỹ thuật đệ quy sử dụng nhiều bộ nhớ hơn và chậm hơn.

Xem thêm:

Mặt khác, giải pháp đệ quy lại dễ hơn và tốn ít thời gian hơn để viết, sửa lỗi, và bảo trì.

???????????? Hãy ủng hộ Cafedev bằng những rating 5 sao ở đây????????????ShareFacebookTwitterPinterestLinkedinEmailBài trước Biểu thức lambda trong JavaBài tiếp theo Toán tử instanceof trong JavaDavid Xuân

Big Update | Tài liệu học Java Miễn Phí cực chi tiết

Tự học Java | Lớp File trong Java

Tự học Java | Generics trong Java

Khoá học đang hot

*

Related Articles

Trả lời

Email của bạn sẽ không được hiển thị công khai.

Back to top button