JavaScript is required

Usually recursion works slower than loops

A.
Yes
B.
No
Trả lời:

Đáp án đúng: A


Câu hỏi này kiểm tra sự hiểu biết về hiệu năng của đệ quy so với vòng lặp. **Tại sao đệ quy thường chậm hơn vòng lặp:** * **Overhead của việc gọi hàm:** Mỗi khi một hàm đệ quy gọi chính nó, hệ thống phải lưu trạng thái hiện tại của hàm (ví dụ: các biến cục bộ, địa chỉ trả về) vào stack. Quá trình này tốn thời gian và bộ nhớ. Vòng lặp không có overhead này vì nó chỉ đơn giản là lặp lại các lệnh trong cùng một hàm. * **Sử dụng bộ nhớ:** Đệ quy có thể sử dụng nhiều bộ nhớ hơn vòng lặp do việc lưu trữ trạng thái của các hàm đệ quy trên stack. Nếu độ sâu đệ quy quá lớn, nó có thể dẫn đến tràn stack (stack overflow). * **Khó tối ưu hóa:** Các trình biên dịch đôi khi khó tối ưu hóa các hàm đệ quy hơn các vòng lặp, đặc biệt là đối với các ngôn ngữ không hỗ trợ tối ưu hóa đệ quy đuôi (tail recursion optimization). Vì vậy, đáp án A "Yes" là chính xác.

Câu hỏi liên quan