JavaScript is required

Thông thường đệ quy hoạt động chậm hơn vòng lặp

A.

B.

Không

Trả lời:

Đáp án đúng: A


Đệ quy thường chậm hơn vòng lặp vì:

  1. Chi phí gọi hàm: Mỗi lời gọi đệ quy tạo ra một bản sao của hàm trong bộ nhớ, bao gồm các biến cục bộ và trạng thái. Việc này tốn thời gian và không gian. Vòng lặp không tạo ra các bản sao hàm mới, mà chỉ lặp lại các lệnh trong cùng một hàm.
  2. Quản lý ngăn xếp: Các lời gọi đệ quy được lưu trữ trong ngăn xếp (stack). Nếu đệ quy quá sâu, nó có thể gây ra lỗi tràn ngăn xếp (stack overflow). Vòng lặp không sử dụng ngăn xếp theo cách này.
  3. Khó tối ưu hóa: Các trình biên dịch thường khó tối ưu hóa mã đệ quy hơn mã vòng lặp.

Tuy nhiên, đệ quy có thể giúp code trở nên ngắn gọn và dễ đọc hơn trong một số trường hợp nhất định, đặc biệt là khi giải quyết các vấn đề có cấu trúc đệ quy tự nhiên (ví dụ: duyệt cây, đồ thị).

Câu hỏi liên quan