Câu hỏi: 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.
Lời 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.
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.
>>> Xem đầy đủ: Soạn Tin 7 Bài 15: Thuật toán tìm kiếm nhị phân