Bài tập ôn tập môn Tin học 7 Sách Kết nối tri thức với cuộc sống - Bài 15: Thuật toán tìm kiếm nhị phân
Bạn đang xem tài liệu "Bài tập ôn tập môn Tin học 7 Sách Kết nối tri thức với cuộc sống - Bài 15: Thuật toán tìm kiếm nhị phân", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.
File đính kèm:
bai_tap_on_tap_mon_tin_hoc_7_sach_ket_noi_tri_thuc_voi_cuoc.docx
Nội dung text: Bài tập ôn tập môn Tin học 7 Sách Kết nối tri thức với cuộc sống - Bài 15: Thuật toán tìm kiếm nhị phân
- 1.Thuật toán tìm kiếm nhị phân - Thực hiện trên danh sách đã được sắp xếp. Bắt đầu từ vị trí ở giữa danh sách. - Tại mỗi bước, so sánh giá trị cần tìm với giá trị của vị trí giữa danh sách nếu lớn hơn thì tìm trong nửa sau của danh sách, nếu nhỏ hơn thì tìm trong nửa trước của danh sách, nếu bằng thì dừng lại. - Chừng nào chưa tìm thấy và chưa hết danh sách thì còn tìm tiếp. Mô tả thuật toán tìm kiếm nhị phân bằng ngôn ngữ tự nhiên: Bước 1. Nếu vùng tìm kiếm không có phần tử nào thì kết luận không tìm thấy và thuật toán kết thúc. Bước 2. Xác định vị trí giữa của vùng tìm kiếm. Vị trí này chia vùng tìm kiếm thành hai nửa: nửa trước và nửa sau vị trí giữa.
- Bước 3. Nếu giá trị cần tìm bằng giá trị của vị trí giữa thi kết luận “giá trị cần tìm xuất hiện tại vị trí giữa” và kết thúc. Bước 4. Nếu giá trị cần tìm nhỏ hơn giá trị của vị trí giữa thì vùng tìm kiếm mới được thu hẹp lại, chỉ còn nửa trước của dãy. Ngược lại (nếu giá trị cần tìm lớn hơn giá trị của vị trí giữa) vùng tìm kiếm mới được thu hẹp lại chỉ còn nửa sau của dãy. Bước 5. Lặp lại từ Bước 1 đến Bước 4 cho đến khi tìm thấy giá trị cần tìm (Bước 3) hoặc vùng tìm kiếm không còn phần tử nào (Bước 1). Lưu ý: “nửa trước” và “nửa sau” không gồm phần tử giữa. Bài 1. Thực hiện thuật tìm kiếm nhị phân để tìm số 10 trong danh sách [2, 4, 6, 8, 10, 12]. Đầu ra của thuật toán là? . Thông báo “Không tìm thấy” B. Thông báo “Tìm thấy”
- C. Thông báo “Tìm thấy”, giá trị cần tìm tại vị trí thứ 5 của danh sách. D. Thông báo “Tìm thấy”, giá trị cần tìm tại vị trí thứ 6 của danh sách. Bài 2. Cho danh sách tên các nước sau đây: Bolivia, Albania, Scotland, Canada, Vietnam, Iceland, Portugal, Greendland, Germany a) Em hãy sắp xếp danh sách tên các nước theo thứ tự trong bảng chữ cái. b) Em hãy liệt kê các bước tìm kiếm tên nước Iceland trong danh sách đã sắp xếp theo thuật toán tìm kiếm nhị phân. c) Em hãy so sánh số bước thực hiện tìm kiếm ở phần b với số bước thực hiện tìm kiếm ở Câu 2 phần Luyện tập của bài 14. Phương pháp giải: Thuật toán tìm kiếm nhị phân: - Thực hiện trên danh sách đã được sắp xếp. Bắt đầu từ vị trí ở giữa danh sách.
- - Tại mỗi bước, so sánh giá trị cần tìm với giá trị của vị trí giữa danh sách, nếu lớn hơn thì tìm trong nửa sau của danh sách, nếu nhỏ hơn thì tìm trong nửa trước của danh sách, nếu bằng thì dừng lại. - Chừng nào chưa tìm thấy và chưa hết danh sách thì còn tìm tiếp. Lời giải chi tiết: a) Sắp xếp danh sách tên các nước theo thứ tự trong bảng chữ cái: Albania, Bolivia, Canada, Germany, Greendland, Iceland, Portugal, Scotland, Vietnam b) Các bước tìm kiếm tên nước Iceland trong danh sách đã sắp xếp theo thuật toán tìm kiếm nhị phân: - Bước 1: Xét vị trí ở giữa dãy, đó là vị trí số 5
- - Bước 2: Xét vị trí ở giữa của nửa sau của dãy là vị trí số 7 - Bước 3: Vì nửa trước của dãy chỉ còn một tên, đó là vị trí số 6
- - Vì sau bước 3 đã tìm thấy tên nước nên thuật toán kết thúc. c) Số bước thực hiện tìm kiếm ở phần b ít hơn so với số bước thực hiện tìm kiếm ở Câu 2 phần Luyện tập của bài 14.

