Trang chủ
PHASE 2: LOGIC & TỰ ĐỘNG HÓA (DAY 31 - 50)/Ngày 47/100
DAY 47🇯🇵 再帰 (Inception)
Đệ quy (Recursion) - Giấc mơ trong giấc mơ
47%
Quảng cáo • Advertisement
📢 Sponsor Ad
Google AdSense
lesson.content.title
lesson.content.subtitle
🎯 Để hiểu đệ quy, trước hết phải hiểu đệ quy
Đệ quy giống như bộ phim Inception. Một hàm gọi lại chính nó, rồi lại gọi lại chính nó... cho đến khi tỉnh mộng (Base Case).
1. Cấu tạo của hàm đệ quy
Bắt buộc phải có 2 phần (Thiếu một là chết):
function factorial(n) {
// 1. Base Case (Điểm dừng/Tỉnh mộng)
if (n == 1) return 1;
// 2. Recursive Step (Gọi lại chính mình)
return n * factorial(n - 1);
}
Nếu thiếu Base Case -> Gọi mãi mãi -> Stack Overflow (Tràn bộ nhớ) -> Màn hình xanh.
2. Đệ quy vs Vòng lặp (Loop)
| Đệ quy | Vòng lặp (For/While) | |
|---|---|---|
| Code | Ngắn gọn, thanh lịch, nhìn rất pro. | Dài dòng, lằng nhằng. |
| Hiệu năng | Chậm hơn, tốn RAM (Push Stack). | Nhanh hơn, tiết kiệm RAM. |
| Dùng khi | Duyệt cây thư mục, XML, JSON, Quicksort. | Xử lý mảng đơn giản. |
Cảnh báo:
Đừng lạm dụng đệ quy cho những bài toán đơn giản (như tính giai thừa, tìm số Fibonacci). Nó giống như dùng dao mổ trâu để giết gà. Hãy dùng vòng lặp cho những case đó.
Quảng cáo • Advertisement
📢 Ad Space
Google AdSense