Trong Bài 1, em đã biết thuật toán tìm kiếm nhị phân bằng vòng lặp. Việc loại bỏ đi một nửa
125
05/09/2023
Khởi động trang 31 Chuyên đề Tin học 11: Trong Bài 1, em đã biết thuật toán tìm kiếm nhị phân bằng vòng lặp. Việc loại bỏ đi một nửa dãy sau mỗi bước và tìm kiếm phần tử trên một nửa dãy còn lại cũng phù hợp với việc cài đặt đệ quy do các bước làm chỉ khác nhau ở phạm vi tìm kiếm. Em hãy mô tả lại từng bước thu hẹp phạm vi tìm kiếm trên một ví dụ trong Hình 4 của Bài 1 để thấy sự lặp lại thuật toán trên bài toán con so với bài toán cha.
Trả lời
Bước 1. So sánh x với phần tử năm ở vị trí giữa dãy số. gọi là phân tử giữa.
Bước 2. Nếu x bằng với giá trị phân tử giữa. đưa ra vị trí phần tử tìm được.
Bước 3. Nếu x lớn hơn giá trị phân tử giữa. giá trị x chỉ có thể nằm ở nửa bên phải phân tử giữa của dãy số (nửa có giá trị lớn hơn). Quay lại Bước 1, tiếp tục áp dụng thuật toán đối với nửa dãy số bên phải này.
Bước 4. Nếu x nhỏ hơn giá trị phân từ giữa, giá trị x chỉ có thể năm ở nửa bên trái phân tử giữa của dãy số (nứa có giá trị nhỏ hơn). Quay lại Bước 1 tiếp tục áp dụng thuật toán đối với nửa dãy số bên trái này.
Xem thêm lời giải bài tập Chuyên đề học tập Tin học lớp 11 Cánh diều hay, chi tiết khác:
Bài 4: Thực hành tổng hợp thiết kế thuật toán đệ quy
Bài 1: Ý tưởng chia để trị
Bài 2: Kĩ thuật đệ quy trong chia để trị
Bài 3: Thực hành ứng dụng thuật toán tìm kiếm nhị phân bằng đệ quy
Bài 4: Kĩ thuật chia để trị trong thuật toán sắp xếp trộn
Bài 5: Thực hành tổng hợp ứng dụng chia để trị