Thuật toán tìm kiếm nhị phân violet

- 0 / 0
(Tài liệu chưa được thẩm định)
Nguồn:
Người gửi: Lê Thị Ngọc Trâm
Ngày gửi: 22h:20' 14-05-2025
Dung lượng: 190.8 KB
Số lượt tải: 15
Nguồn:
Người gửi: Lê Thị Ngọc Trâm
Ngày gửi: 22h:20' 14-05-2025
Dung lượng: 190.8 KB
Số lượt tải: 15
Số lượt thích:
0 người
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.
2. 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 thì 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).
Vị trí giữa của vùng tìm kiếm bằng phần nguyên của (vị trí đầu + vị trí cuối)/2
2. Sắp xếp và tìm kiếm
- Sắp xếp giúp cho việc tìm kiếm được thực hiện nhanh hơn.
Ví dụ: Em hãy viết các bước lặp thực hiện thuật toán tìm kiếm nhị phân để tìm tên
bạn “Hòa” trong danh sách như hình sau:
Bước 1. Vị trí giữa vùng tìm kiếm là 5. So sánh “Hòa” và “Mai”. Vì H đứng trước M
trong bảng chữ cái nên vùng tìm kiếm là nửa trước của dãy (từ vị trí 1 đến vị trí 4).
Bước 2. Vị trí giữa vùng tìm kiếm là 2. So sánh “Hòa” và “Bình”. Vì H đứng sau B
trong bảng chữ cái nên vùng tìm kiếm là nửa sau của dãy (từ vị trí 3 đến vị trí 4).
Bước 3. Vị trí của vùng tìm kiếm là 3. So sánh ta thấy giá trị ở vị trí giữa đúng là
“Hòa” là giá trị cần tìm. Thuật toán kết thúc.
Ví dụ: Em hãy viết các bước lặp thực hiện thuật toán tìm kiếm nhị phân để tìm tên
bạn “Thành” trong danh sách như hình sau:
1
2
3
4
5
6
7
8
9
An
Bình
Cường
Định
Hằng
Linh
Nhung
Thành
Trang
- Bước 1: Xét vị trí ở giữa của dãy là vị trí số 5 (Hằng)
So sánh giá trị “Thành” và “Hằng. Vì “T” đứng sau “H” nên bỏ đi nửa đầu của danh sách.
6
7
8
9
Linh Nhung Thành Trang
- Bước 2. Xét vị trí ở giữa nửa sau của dãy, đó là vị trí số 7 (Nhung)
So sánh giá trị “Thành” và “Nhung. Vì “T” đứng sau “N” nên bỏ đi nửa đầu của danh sách.
8
9
Thành Trang
- Bước 3. Xét vị trí ở giữa nửa sau của dãy, đó là vị trí số 8 (Thành)
So sánh giá trị “Thành” và “Thành. Vì hai giá trị này bằng nhau nên thông báo” Đã tìm
thấy bạn tên “Thành” tại vị trí số 8 của danh sách → thuật toán kết thúc.
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 đó.
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:
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
- Bước 2: Xét vị trí ở giữa của nửa đầu của dãy là vị trí số 3
- Vì sau bước 2 đã tìm thấy tên học sinh nên thuật toán kết thúc.
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.
2. 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 thì 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).
Vị trí giữa của vùng tìm kiếm bằng phần nguyên của (vị trí đầu + vị trí cuối)/2
2. Sắp xếp và tìm kiếm
- Sắp xếp giúp cho việc tìm kiếm được thực hiện nhanh hơn.
Ví dụ: Em hãy viết các bước lặp thực hiện thuật toán tìm kiếm nhị phân để tìm tên
bạn “Hòa” trong danh sách như hình sau:
Bước 1. Vị trí giữa vùng tìm kiếm là 5. So sánh “Hòa” và “Mai”. Vì H đứng trước M
trong bảng chữ cái nên vùng tìm kiếm là nửa trước của dãy (từ vị trí 1 đến vị trí 4).
Bước 2. Vị trí giữa vùng tìm kiếm là 2. So sánh “Hòa” và “Bình”. Vì H đứng sau B
trong bảng chữ cái nên vùng tìm kiếm là nửa sau của dãy (từ vị trí 3 đến vị trí 4).
Bước 3. Vị trí của vùng tìm kiếm là 3. So sánh ta thấy giá trị ở vị trí giữa đúng là
“Hòa” là giá trị cần tìm. Thuật toán kết thúc.
Ví dụ: Em hãy viết các bước lặp thực hiện thuật toán tìm kiếm nhị phân để tìm tên
bạn “Thành” trong danh sách như hình sau:
1
2
3
4
5
6
7
8
9
An
Bình
Cường
Định
Hằng
Linh
Nhung
Thành
Trang
- Bước 1: Xét vị trí ở giữa của dãy là vị trí số 5 (Hằng)
So sánh giá trị “Thành” và “Hằng. Vì “T” đứng sau “H” nên bỏ đi nửa đầu của danh sách.
6
7
8
9
Linh Nhung Thành Trang
- Bước 2. Xét vị trí ở giữa nửa sau của dãy, đó là vị trí số 7 (Nhung)
So sánh giá trị “Thành” và “Nhung. Vì “T” đứng sau “N” nên bỏ đi nửa đầu của danh sách.
8
9
Thành Trang
- Bước 3. Xét vị trí ở giữa nửa sau của dãy, đó là vị trí số 8 (Thành)
So sánh giá trị “Thành” và “Thành. Vì hai giá trị này bằng nhau nên thông báo” Đã tìm
thấy bạn tên “Thành” tại vị trí số 8 của danh sách → thuật toán kết thúc.
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 đó.
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:
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
- Bước 2: Xét vị trí ở giữa của nửa đầu của dãy là vị trí số 3
- Vì sau bước 2 đã tìm thấy tên học sinh nên thuật toán kết thúc.
 








Các ý kiến mới nhất