Bài 15: Thuật toán tìm kiếm nhị phân

Minh Lệ
Hướng dẫn giải Thảo luận (1)

Bạn An nên sắp xếp tên khách hàng theo thứ tự trong bảng chữ cái.

Minh Lệ
Hướng dẫn giải Thảo luận (1)

+ Phải thực hiện 8 lần để tìm được khách hàng tên “Trúc”.

+ Thuật toán tìm kiếm nhị phân chỉ thực hiện 3 lần lần để tìm được khách hàng tên “Trúc”.

Minh Lệ
Hướng dẫn giải Thảo luận (1)

Danh sách khách hàng cần sắp xếp theo thứ tự từ nhỏ đến lớn. Nếu không sắp xếp thứ tự từ nhỏ đến lớn thì thuật toán tìm kiếm nhị phân không thực hiện được.

  
Minh Lệ
Hướng dẫn giải Thảo luận (1)

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

=> So sánh Hoà và Mai 

+ “H” đứng trước “M” trong bảng chữ cái nên bỏ đi nữa sau danh sách.

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

So sánh “Hòa” và “Hòa”, vì hai giá trị bằng nhau nên thuật toán kết thúc.

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

Minh Lệ
Hướng dẫn giải Thảo luận (1)

Trong thực tế trong quản lý học sinh, danh sách học sinh luôn được sắp xếp theo chữ cái đầu của tên để dễ tìm kiếm

VD :

Nguyễn Tích Trường An

Hải Anh

Minh Lệ
Hướng dẫn giải Thảo luận (1)

tham khảo

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.

Minh Lệ
Hướng dẫn giải Thảo luận (1)

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.

Minh Lệ
Hướng dẫn giải Thảo luận (1)

tham khảo

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.