Câu hỏi:
17/06/2026 112
Giả sử A = [1, 3, 7, 9] và K = 10. Nếu áp dụng chương trình trên thì cần mấy lần gọi hàm đệ quy?
Giả sử A = [1, 3, 7, 9] và K = 10. Nếu áp dụng chương trình trên thì cần mấy lần gọi hàm đệ quy?
Trả lời:
Giải bởi Vietjack
Nếu áp dụng chương trình trên thì cần 4 lần gọi hàm đệ quy
lần đầu tiên gọi hàm binarySearch(A, 0, 3, 10), lần này lệnh return sẽ gọi tiếp hàm binarySearch(A, 0, 1, 10) vì A[mid] < K
lần thứ hai gọi hàm binarySearch(A, 0, 1, 10), lần này lệnh return sẽ gọi tiếp hàm binarySearch(A, 1, 1, 10) vì A[mid] < K
lần thứ ba gọi hàm binarySearch(A, 1, 1, 10), lần này lệnh return sẽ gọi tiếp hàm binarySearch(A, 2, 1, 10) vì A[mid] < K
lần thứ tư gọi hàm binarySearch(A, 2, 1, 10), lần này lệnh return sẽ kết thúc hàm và trả về -1 vì left > right.
Nếu áp dụng chương trình trên thì cần 4 lần gọi hàm đệ quy
lần đầu tiên gọi hàm binarySearch(A, 0, 3, 10), lần này lệnh return sẽ gọi tiếp hàm binarySearch(A, 0, 1, 10) vì A[mid] < K
lần thứ hai gọi hàm binarySearch(A, 0, 1, 10), lần này lệnh return sẽ gọi tiếp hàm binarySearch(A, 1, 1, 10) vì A[mid] < K
lần thứ ba gọi hàm binarySearch(A, 1, 1, 10), lần này lệnh return sẽ gọi tiếp hàm binarySearch(A, 2, 1, 10) vì A[mid] < K
lần thứ tư gọi hàm binarySearch(A, 2, 1, 10), lần này lệnh return sẽ kết thúc hàm và trả về -1 vì left > right.
CÂU HỎI HOT CÙNG CHỦ ĐỀ
Câu 1:
Cho trước dãy A. Viết chương trình đệ quy để in dãy A theo thứ tự ngược lại.
Cho trước dãy A. Viết chương trình đệ quy để in dãy A theo thứ tự ngược lại.
Câu 2:
Viết chương trình theo kĩ thuật đệ quy để tính hàm SL(n) là tổng các số tự nhiên lẻ nhỏ hơn hoặc bằng n
Viết chương trình theo kĩ thuật đệ quy để tính hàm SL(n) là tổng các số tự nhiên lẻ nhỏ hơn hoặc bằng n
Câu 3:
Viết chương trình tổng theo hai cách:
a) Không sử dụng đệ quy
b) Có sử dụng kĩ thuật đệ quy
Viết chương trình tổng theo hai cách:
a) Không sử dụng đệ quy
b) Có sử dụng kĩ thuật đệ quy
Câu 4:
Chúng ta đã biết thuật toán sắp xếp chèn trên dãy A cho trước theo hàm sau
Hãy thiết kế lại chương trình trên sử dụng kĩ thuật đệ quy
Chúng ta đã biết thuật toán sắp xếp chèn trên dãy A cho trước theo hàm sau
Hãy thiết kế lại chương trình trên sử dụng kĩ thuật đệ quy
Câu 5:
Bạn An đã nghĩ ra thuật toán tìm kiếm nhị phân bằng đệ quy theo cách khác như sau:
a) Chương trình của bạn An có đúng không?
b) Trong chương trình trên, phần cơ sở là những lệnh nào?
Bạn An đã nghĩ ra thuật toán tìm kiếm nhị phân bằng đệ quy theo cách khác như sau:

a) Chương trình của bạn An có đúng không?
b) Trong chương trình trên, phần cơ sở là những lệnh nào?
Câu 6:
Chúng ta đã biết thuật toán tìm kiếm nhị phân trên các dãy phần tử đã sắp xếp. Hãy tìm tới thiết kế mới của thuật toán này theo kĩ thuật đệ quy. Trao đổi, thảo luận và trả lời các câu hỏi sau:
1. Nêu ý tưởng chính của giải thuật tìm kiếm nhị phân sử dụng đệ quy
2. Vị trí nào trong thuật toán có thể gợi ý cho kĩ thuật đệ quy?
3. Phần cơ sở của thiết kế đệ quy nằm ở bước nào?
Chúng ta đã biết thuật toán tìm kiếm nhị phân trên các dãy phần tử đã sắp xếp. Hãy tìm tới thiết kế mới của thuật toán này theo kĩ thuật đệ quy. Trao đổi, thảo luận và trả lời các câu hỏi sau:
1. Nêu ý tưởng chính của giải thuật tìm kiếm nhị phân sử dụng đệ quy
2. Vị trí nào trong thuật toán có thể gợi ý cho kĩ thuật đệ quy?
3. Phần cơ sở của thiết kế đệ quy nằm ở bước nào?
Câu 7:
An được giao tìm một thiết kế mới cho bài toán tính tổng S(n) có thể được viết lại như sau: . Do đó, việc tính S(n) có thể được tính từ S(n-1), tương tự S(n-1) lại có thể được tính từ S(n-2). Cứ như vậy, cuối cùng sẽ dẫn đến cần tính S(0), nhưng S(0)=0. Em có thể giúp n hoàn thiện ý tưởng trên thành một chương trình hay không?
An được giao tìm một thiết kế mới cho bài toán tính tổng S(n) có thể được viết lại như sau: . Do đó, việc tính S(n) có thể được tính từ S(n-1), tương tự S(n-1) lại có thể được tính từ S(n-2). Cứ như vậy, cuối cùng sẽ dẫn đến cần tính S(0), nhưng S(0)=0. Em có thể giúp n hoàn thiện ý tưởng trên thành một chương trình hay không?

Câu 8:
Trao đổi, thảo luận và tìm hiểu ý tưởng thực hiện các tính toán sau bằng kĩ thuật đệ quy.
1. Tính tổng
2. Tính lũy thừa
3. Tính n giai thừa
Trao đổi, thảo luận và tìm hiểu ý tưởng thực hiện các tính toán sau bằng kĩ thuật đệ quy.
1. Tính tổng
2. Tính lũy thừa
3. Tính n giai thừa
Câu 9:
Trong chương trình trên lệnh nào đóng vai trò là phần cơ sở của đệ quy?
Trong chương trình trên lệnh nào đóng vai trò là phần cơ sở của đệ quy?
Câu 11:
Vì sao trong ý tưởng thiết kế đệ quy trên, yêu cầu từ bài toán với kích thước lớn cần phải đưa về cùng bài toán đó với kích thước nhỏ hơn?
Vì sao trong ý tưởng thiết kế đệ quy trên, yêu cầu từ bài toán với kích thước lớn cần phải đưa về cùng bài toán đó với kích thước nhỏ hơn?
