Skip to Content
🧮 CTDL & Giải thuật🔄 Đệ quy (Recursion)

Đệ quy (Recursion)

Đệ quy là gì?

Đệ quy là kỹ thuật hàm tự gọi chính nó để giải quyết bài toán nhỏ hơn.

⚠️

Luôn phải có base case! Thiếu base case → Stack Overflow

Cấu trúc hàm đệ quy

def recursive_function(n): # Base case - Điều kiện dừng if n <= 0: return result # Recursive case return recursive_function(n - 1)

Giai thừa (Factorial)

def factorial(n): if n <= 1: return 1 return n * factorial(n - 1) print(factorial(5)) # 120

Fibonacci với Memoization

from functools import lru_cache @lru_cache(maxsize=None) def fib(n): if n <= 1: return n return fib(n - 1) + fib(n - 2)
💡

Memoization giúp tối ưu từ O(2^n) xuống O(n)!

Đệ quy vs Vòng lặp

Đệ quyVòng lặp
Đọc hiểuDễ hơn với bài toán đệ quyPhức tạp hơn
PerformanceTốn bộ nhớ (call stack)Hiệu quả hơn
Khi nào dùngTree, Graph, Divide & ConquerBài toán lặp đơn giản

Tiếp theo: Chia để trị

Last updated on