Bài 15. Thuật toán tìm kiếm nhị phân SGK Tin học 7 Kết nối tri thức

Em hãy nêu ví dụ trong thực tế cho thấy mối liên quan giữa sắp xếp và tìm kiếm.


? mục 1

Trả lời câu hỏi mục 1 trang 74 SGK Tin học 7

Việc kinh doanh mở rộng, số lượng khách hàng của cửa hàng bán giống cây trồng nhà An lên đến hàng trăm người. Việc tìm kiếm tên khách hàng trong danh sách thật khó khăn. Em có gợi ý gì cho bạn An để tìm kiếm được dễ dàng hơn không?

Phương pháp giải:

Dựa vào sự hiểu biết của bản thân

Lời giải chi tiết:

Để tìm kiếm tên khách hàng trong danh sách được dễ dàng hơn, bạn An nên sắp xếp tên khách hàng theo thứ tự trong bảng chữ cái.


Hoạt động 2

Trả lời câu hỏi Hoạt động 1 trang 75 SGK Tin học 7

1. Em hãy cho biết thuật toán tìm kiếm tuần tự phải thực hiện bao nhiêu bước để tìm khách hàng tên Trúc như ở Hình 15.1? Em hãy so sánh số bước thực hiện của thuật toán tìm kiếm tuần tự với số bước thực hiện thuật toán tìm kiếm nhị phân.

2. Theo em trước khi thực hiện thuật toán tìm kiếm nhị phân, danh sách khách hàng cần thỏa mãn điều kiện gì? Nếu không thỏa mãn điều kiện đó, thuật toán tìm kiếm nhị phân có thực hiện được không?

Phương pháp giải:

- Quan sát Hình 15.1

- Thuật toán tìm kiếm tuần tự: tìm kiếm lần lượt từ đầu danh sách cho đến khi tìm được

- Thuật toán tìm kiếm nhị phân: so sánh giá trị ở giữa danh sách đã được sắp xếp với giá trị cần tìm.

Lời giải chi tiết:

1. Thuật toán tìm kiếm tuần tự phải thực hiện 3 bước để tìm khách hàng tên Trúc như ở Hình 15.1.

- Số bước thực hiện của thuật toán tìm kiếm tuần tự nhiều hơn so với số bước thực hiện thuật toán tìm kiếm nhị phân vì thuật toán tìm kiếm tuần tự sẽ tìm kiếm lần lượt từ đầu danh sách cho đến khi tìm được tên của bạn Trúc nên sẽ mất 8 lần lặp, còn thuật toán tìm kiếm nhị phân so sánh giá trị ở giữa danh sách nên sẽ nhanh chóng hơn.

2. Trước khi thực hiện thuật toán tìm kiếm nhị phân, danh sách khách hàng cần phải được sắp xếp theo quy tắc (theo bảng chữ cái, số thứ tự tăng dần hoặc giảm dần). 

Nếu không thỏa mãn điều kiện đó, thuật toán tìm kiếm nhị phân không thực hiện được.


? mục 2

Trả lời câu hỏi mục 2 trang 76 SGK Tin học 7

Em hãy viết các bước thực hiện thuật toán tìm kiếm nhị phân để tìm khách hàng tên "Hòa" trong danh sách ở Hình 15.1.

https://baivan.net/sites/default/files/styles/giua_bai/public/d/m/Y/56_-_b15_0.png?itok=Q9unQmKb

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:

- Bước 1: Xét vị trí ở giữa của dãy, đó là vị trí số 5

https://baivan.net/sites/default/files/styles/giua_bai/public/d/m/Y/57_-_b15_0.png?itok=9L8QsdGH

- Bước 2: Xét vị trí ở giữa của nửa đầu của dãy là vị trí số 3.

 

https://baivan.net/sites/default/files/styles/giua_bai/public/d/m/Y/58_-_b15_0.png?itok=CpF71a6M

- Vì sau bước 2 đã tìm thấy tên khách hàng nên thuật toán kết thúc.


? mục 3

Trả lời câu hỏi mục 3 trang 77 SGK Tin học 7

Em hãy nêu ví dụ trong thực tế cho thấy mối liên quan giữa sắp xếp và tìm kiếm.

Phương pháp giải:

Dựa vào kiến thức thực tế của bản thân

Lời giải chi tiết:

Ví dụ trong thực tế cho thấy mối liên quan giữa sắp xếp và tìm kiếm là tra từ điển Tiếng Anh.


Luyện tập

Trả lời câu hỏi Luyện tập trang 77 SGK Tin học 7

1. 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

https://baivan.net/sites/default/files/styles/giua_bai/public/d/m/Y/59_-_b15_0.png?itok=YP7hQC6s

- Bước 2: Xét vị trí ở giữa của nửa sau của dãy là vị trí số 7

https://baivan.net/sites/default/files/styles/giua_bai/public/d/m/Y/60_-_b15_0.png?itok=oRjuKpIz

- Bước 3: Vì nửa trước của dãy chỉ còn một tên, đó là vị trí số 6

https://baivan.net/sites/default/files/styles/giua_bai/public/d/m/Y/61_-_b15_0.png?itok=Pd56QbLl

- 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.

2. Em hãy cho ví dụ một bài toán tìm kiếm trong thực tế mà có thể thực hiện bằng thuật toán tìm kiếm nhị phân? Hãy thực hiện thuật toán tìm kiếm nhị phân để giải quyết bài toán đó.

Phương pháp giải:

Vận dụng kiến thức thực tế và thuật toántìm kiếm nhị phân để giải quyết

Lời giải chi tiết:

Ví dụ một bài toán tìm kiếm trong thực tế: Giáo viên muốn tìm tên bạn Chung trong danh sách lớp sau:

https://baivan.net/sites/default/files/styles/giua_bai/public/d/m/Y/62_-_b15_0.png?itok=ETHWJoPD

Các bước thực hiện thuật toán tìm kiếm nhị phân cho bài toán trên:

- Bước 1: Xét vị trí ở giữa dãy, đó là vị trí số 5

https://baivan.net/sites/default/files/styles/giua_bai/public/d/m/Y/63_-_b15_0.png?itok=mfWyKdJd

- Bước 2: Xét vị trí ở giữa của nửa đầu của dãy là vị trí số 3

 

https://baivan.net/sites/default/files/styles/giua_bai/public/d/m/Y/64_-_b15_0.png?itok=9jHqsM4Q

- Vì sau bước 2 đã tìm thấy tên học sinh nên thuật toán kết thúc.


Vận dụng

Trả lời câu hỏi Vận dụng trang 77 SGK Tin học 7

Em tìm một từ tiếng Anh trong quyển từ điển theo cách nào? Tại sao em lại dùng cách đó?

Phương pháp giải:

Dựa vào kiến thức về thuật toán tìm kiếm em đã học

Lời giải chi tiết:

Em tìm một từ tiếng Anh trong quyển từ điển bằng cách chia đổi quyển từ điển, tìm một từ bất kì ở giữa quyển từ điển và so sánh với từ cần tìm. Nếu tìm thấy từ đó thì sẽ kết thúc việc tìm kiếm. Nếu chưa em lại tiếp tục chia quyển từ điển theo nửa thích hợp, đến khi nào tìm được từ cần tìm thì kết thúc. Em dùng cách này vì nhanh chóng và thuận tiện hơn là tìm kiếm từng từ trong bảng chữ cái.


Lý thuyết