Đệ quy trong lập trình hàm

Các Khái Niệm Về Mô Hình Lập Trình

Eleanor Thomas

Senior Data Analytics Engineer

Đệ quy là gì?

  • Hàm đệ quy: hàm tự gọi chính nó
  • Phải có điều kiện dừng (base case)
  • Cũng cần lời gọi đệ quy với đầu vào đã chỉnh sửa
0 | def my_recursive_function(input_value):
1 |     # base case
2 |     if base_case_condition:
3 |        return base_case_output_value
4 |     # recursive call
5 |     else:
6 |        return my_recursive_function(modified_input_value) + some_modification
Các Khái Niệm Về Mô Hình Lập Trình

Vì sao dùng đệ quy?

  • Một số bài toán rõ ràng hơn khi định nghĩa đệ quy
  • Dãy Fibonacci:
    • 0, 1, ...
    • 0, 1, 1, ...
    • 0, 1, 1, 2, ...
    • 0, 1, 1, 2, 3, ...
Các Khái Niệm Về Mô Hình Lập Trình

Một vài ví dụ khác về đệ quy

Một hệ thống tệp

  • Tìm kiếm trong hệ thống tệp
Các Khái Niệm Về Mô Hình Lập Trình

Một vài ví dụ khác về đệ quy

Một hệ thống tệp; một phương pháp sắp xếp

  • Tìm kiếm trong hệ thống tệp
  • Một số thuật toán sắp xếp, như Merge Sort
Các Khái Niệm Về Mô Hình Lập Trình

Một vài ví dụ khác về đệ quy

Một hệ thống tệp; một phương pháp sắp xếp; một cấu trúc dữ liệu

  • Tìm kiếm trong hệ thống tệp
  • Một số thuật toán sắp xếp, như Merge Sort
  • Nhiều cấu trúc dữ liệu được định nghĩa đệ quy
Các Khái Niệm Về Mô Hình Lập Trình

Đệ quy và lặp

  • Mọi hàm đệ quy đều có thể viết dạng lặp
  • Hàm lặp dùng vòng lặp thay vì lời gọi đệ quy
def iterative_factorial(n):
    result = 1
    for i in range(1, n + 1):
        result = result * i
    return result
Các Khái Niệm Về Mô Hình Lập Trình

Ayo berlatih!

Các Khái Niệm Về Mô Hình Lập Trình

Preparing Video For Download...