Giao diện
Đệ quy
Hàm đệ quy gọi lại chính nó trên bài toán nhỏ hơn. Cần có điều kiện dừng và mỗi lần gọi phải tiến về điều kiện đó. Các lời gọi chưa hoàn thành nằm trên , vì vậy đệ quy quá sâu có thể vượt ngăn xếp.
Giải thích kỹ thuật
Hai yêu cầu kết thúc. Có ít nhất một trường hợp cơ sở, và mọi nhánh lời gọi phải tiến về trường hợp cơ sở. Một hàm có câu lệnh dừng nhưng nhánh khác gọi lại với cùng tham số vẫn có thể không kết thúc.
Để phân tích, viết quan hệ truy hồi của số bước và độ sâu . Chứng minh bằng thường đi cùng cấu trúc đệ quy.
Ví dụ
factorial(n) = n × factorial(
Khi nào cần dùng?
Hiểu DFS, chia để trị, quay lui và chứng minh bằng .
Câu hỏi ôn lại
Nếu hàm cứ gọi lại với cùng n và không dừng, chuyện gì xảy ra?
Xem đáp án
Lời gọi tiếp tục tăng tới khi vượt hoặc tài nguyên.