Giải Tin học 7 Bài 2 (Cánh diều): Tìm kiếm nhị phân
Với soạn, giải bài tập Tin học lớp 7 Bài 2: Tìm kiếm nhị phân sách Cánh diều hay nhất, chi tiết sẽ giúp học sinh dễ dàng trả lời câu hỏi và làm bài tập Tin học 7 Bài 2.
Giải Tin học 7 Bài 2: Tìm kiếm nhị phân
Khởi động
Trả lời:
Nếu phải tìm một số trong dãy đã sắp xếp theo thứ tự tăng hoặc giảm dần, ta xem số đó ở khoảng nào trong dãy mà không sợ bỏ sót.
1. Chia đôi dần để tìm kiếm một số trong dãy số đã sắp thứ tự.
Hoạt động
Trả lời:
Em đồng ý với Thành An vì:
- Dãy số đã được sắp xếp không giảm, ta chia đôi dãy số, loại bỏ nửa dãy chắc chắn không chứa phần tử cần tìm, chỉ tìm kiếm trong nửa dãy còn lại. Nửa còn lại ta làm tương tự như trước.
Luyện tập
Có thể trình bày thông tin mô tả dưới dạng bảng như bài học.
Trả lời:
Tìm x = 60:
|
A1 |
A2 |
A3 |
A4 |
A5 |
A6 |
A7 |
A8 |
Xuất phát |
5 |
11 |
18 |
39 |
41 |
52 |
63 |
70 |
Bước 1 |
|
|
|
39 |
|
52 |
|
|
Bước 2 |
|
|
|
|
|
52 |
|
|
- Chia đôi lần 1. Phạm vi tìm kiếm từ dãy A1 đến A8. Lấy A4 là số có vị trí giữa dãy. Vì x >A4 nên nửa đầu dãy chắc chắn không chứa x = 60. Tiếp theo chỉ cần tìm trong nửa sau cảu dãy. Phạm vi tìm kiếm từ A5 đến A8.
- Chia đôi lần 2. Phạm vi tìm kiếm từ dãy A5 đến A8. Lấy A6 có vị trí giữa dãy. Vì x>A6 nên nửa đầu dãy chắc chắn không chứa x = 60. Tiếp theo chỉ cần tìm trong nửa sau của dãy. Phạm vi tìm kiếm từ A7 đến A8.
- Chia đôi lần 3. Phạm vi tìm kiếm từ A7 đến A8. Lấy A7 có vị trị giữa dãy. Vì x
Kết thúc thuật toán: Không tìm thấy x có trong dãy.
Vận dung
Trả lời:
Giả sử cuốn từ điển có khoảng 300 nghìn mục từ. Để dễ tính toán, ta coi là từ điển có 218 = 262144 mục từ và được sắp xếp theo vần bảng chữ cái. Nếu tra tìm một từ trong từ điển bằng cách tìm kiếm nhị phân thì sau một lần chia đôi, phạm vi tìm kiếm giảm đi chỉ còn một nửa, tức là còn 217 = 131072 mục từ. Dễ thấy rằng nếu theo thuật toán tìm kiếm nhị phân, ta phải chia đôi 17 lần cho đến khi phạm vi kiếm là 20 = 1 mục từ mới tìm thấy. Nên có thể gọi đây là tìm kiếm nhị phân.
Câu hỏi tự kiểm tra
Câu 1 trang 83 Tin học 7: Hãy mô tả quy trình chia đôi dần để thực hiện tìm kiếm nhị phân?
Trả lời:
Mô tả quy trình chia đôi dần để thực hiện tìm kiếm nhị phân:
Khi bắt đầu thuật toán, phạm vi tìm kiếm là dãy đã cho ban đầu. Lấy phần tử đứng giữa để so sánh với x.
+ Nếu phần tử đó chính là x thì kết luận. Đã tìm thấy x và kết thúc thuật toán.
+ Trái lại, ta có thể xác định được x chắc chắn không có trong nửa đầu hay nửa sau của dãy, từ đó xác định được phạm vi tìm kiếm ở bước tiếp theo là nửa còn lại.
Tiếp theo, việc tìm x trong phạm vi tìm kiếm (tức là nửa dãy còn lại) sẽ được lặp lại cho cho đến khi tìm thấy hoặc độ dài cần tìm chỉ còn bằng 1 và so sánh được ngay để biết tìm thấy x hay không.
Trả lời:
Không phải với bất cứ dãy số nào cũng có thể áp dụng được thuật toán tìm kiếm nhị phân Vì tìm kiếm nhị phân chỉ áp dụng với dãy số đã được sắp xếp tăng dần hoặc giảm dần.
Lý thuyết Tin Học 7 Bài 2: Tìm kiếm nhị phân
1. Chia đôi dần để tìm kiếm một số trong dãy số đã sắp thứ tự
Ý tưởng chia đôi dần để tìm một số trong một dãy số được minh họa bởi ví dụ sau đây:
Ví dụ: Tìm x = 44 trong dãy 8 phần tử đã xếp thứ tự không giảm 6, 12, 18, 42, 44, 55, 67, 94. Bảng dưới minh họa từng bước chia đôi dần để tìm kiếm.
Chia đôi lần 1: Phạm vi tìm kiếm là dãy từ a1 đến a8. Lấy a4 là số có vị trí giữa dãy: Vì x > a4 nên nửa đầu dãy chắc chắn không chứa x = 44, sau đó cần tìm trong nửa sau của dãy. Như vậy, phạm vi tìm kiếm tiếp theo là dãy từ a5 đến a8.
Chia đôi lần 1: Phạm vi tìm kiếm là dãy từ a5 đến a8. Lấy a6 là số có vị trí giữa dãy; Vì x < a6 nên nửa sau dãy chắc chắn không chứa x = 44, tiếp theo chỉ cần tìm trong nửa đầu của dãy. Như vậy, phạm vi tìm kiếm tiếp theo là dãy con chỉ còn một từ a5.
Phạm vi tìm kiếm chỉ còn một số. Kết thúc thuật toán với kết quả: Tìm thấy x ở vị trí thứ năm.
2. Thuật toán tìm kiếm nhị phân
- Thuật toán tìm kiếm nhị phân chỉ áp dụng được cho dãy đã sắp thứ tự.
- Ý tưởng: Chia đôi dần để giảm nhanh phạm vi tìm kiếm.
Hình 2.1: Một mô tả của thuật toán tìm kiếm nhị phân
Khi bắt đầu thuật toán, phạm vi tìm kiếm là dãy đã cho ban đầu. Lấy phần tử đứng giữa dãy là am để so sánh với x. Nếu am = x thì kết thúc. Trái lại, sẽ có hai trường hợp:
- Nếu am < x thì chắc chắn không có x trong nửa đầu của dãy.
- Nếu x < am thì chắc chắn không có x trong nửa sau của dãy.
Lặp lại theo cách như thế cho đến khi hoặc tìm thấy hoặc độ dài dãy phạm vi tìm kiếm là bằng 0.
3. Phương pháp “chia để trị” với bài toán tìm kiếm
- Thuật toán tìm kiếm nhị phân chia bài toán ban đầu thành hai bài toán con nhỏ hơn và chỉ phải tiếp tục giải một trong hai bài toán con đó, cho đến đi nhận được kết quả.
Xem thêm lời giải bài tập Tin học lớp 7 Cánh diều hay, chi tiết khác:
Bài 5: Thực hành mô phỏng các thuật toán tìm kiếm, sắp xếp
Xem thêm các chương trình khác:
- Giải sgk Toán 7 – Cánh Diều
- Giải sbt Toán 7 – Cánh Diều
- Lý thuyết Toán 7 – Cánh Diều
- Giải VBT Toán 7 – Cánh diều
- Soạn văn lớp 7 (hay nhất)– Cánh Diều
- Tác giả tác phẩm Ngữ văn lớp 7 – Cánh Diều
- Tóm tắt tác phẩm Ngữ văn lớp 7 – Cánh Diều
- Bố cục tác phẩm Ngữ văn lớp 7 – Cánh Diều
- Nội dung chính tác phẩm Ngữ văn lớp 7 – Cánh Diều
- Giải sbt Ngữ văn lớp 7 – Cánh Diều
- Văn mẫu lớp 7 – Cánh Diều
- Soạn văn lớp 7 (ngắn nhất) – Cánh Diều
- Giải VBT Ngữ văn lớp 7 – Cánh diều
- Giải sgk Tiếng Anh 7 - Explore English
- Giải sgk Tiếng Anh 7 – ilearn Smart World
- Trọn bộ Từ vựng Tiếng Anh 7 ilearn Smart World đầy đủ nhất
- Ngữ pháp Tiếng Anh 7 i-learn Smart World
- Bài tập Tiếng Anh 7 iLearn Smart World theo Unit có đáp án
- Giải sbt Tiếng Anh 7 - ilearn Smart World
- Giải sgk Lịch sử 7 – Cánh Diều
- Lý thuyết Lịch Sử 7 – Cánh Diều
- Giải sbt Lịch sử 7 – Cánh Diều
- Giải VBT Lịch sử 7 – Cánh diều
- Giải sgk Khoa học tự nhiên 7 – Cánh Diều
- Lý thuyết Khoa học tự nhiên 7 – Cánh Diều
- Giải sbt Khoa học tự nhiên 7 – Cánh Diều
- Giải sgk Địa lí 7 – Cánh Diều
- Lý thuyết Địa Lí 7 – Cánh Diều
- Giải sbt Địa lí 7 – Cánh Diều
- Giải VBT Địa lí 7 – Cánh diều
- Giải sgk Giáo dục công dân 7 – Cánh Diều
- Lý thuyết Giáo dục công dân 7 – Cánh Diều
- Giải sbt Giáo dục công dân 7 – Cánh Diều
- Giải sgk Hoạt động trải nghiệm 7 – Cánh Diều
- Giải sbt Hoạt động trải nghiệm 7 – Cánh Diều
- Giải sgk Công nghệ 7 – Cánh Diều
- Lý thuyết Công nghệ 7 – Cánh Diều
- Giải sbt Công nghệ 7 – Cánh Diều
- Giải sgk Giáo dục thể chất 7 – Cánh Diều
- Giải sgk Âm nhạc 7 – Cánh Diều