Thuật tốn tìm kiếm nhị phân (Binary Search)

Một phần của tài liệu giao an tin hoc 10 (Trang 30 - 35)

II. Khái niệm thuật tốn: Ví dụ: Tìm giá trị lớn nhất

b) Thuật tốn tìm kiếm nhị phân (Binary Search)

nhị phân (Binary Search)

Xác định bài tốn

- Input: Dãy A là dãy tăng gồm N số nguyên khác nhau a1, a2, …, aN và một số nguyên k

- Output: Chỉ số i mà ai = k hoặc thơng báo khơng cĩ số hạng nào của dãy A cĩ giá trị bằng k.

Ý tưởng: Sử dụng tính chất dãy A là dãy tăng, ta tìm cách thu hẹp nhanh phạm vị tìm kiếm sau mỗi

 Nhấn mạnh dãy A là một dãy tăng. H. So sánh 2 bài tốn tìm kiếm trong 2 thuật tốn?  GV hướng dẫn HS tìm thuật tốn giải bài tốn.

 Minh hoạ qua việc tra từ điển Cho các nhĩm thảo luận việc tra từ điển. Từ đĩ rút ra thuật tốn.

Đ. Dãy A ở đây là dãy tăng

lần so sánh khố với số hạng được chọn, ta chọn số hạng aGiữa ở " giữa dãy" để so sánh với k, trong đĩ Giưa = 1 2 N      . Khi đĩ: - Nếu aGiưa = k thì Giưa là chỉ số cần tìm.

- Nếu aGiưa> k thì do dãy A là dãy đã sắp xếp nên việc tìm kiếm tiếp theo chỉ xét trên dãy a1, a2, …, aGiưa-1 . - Nếu aGiưa < k thì thực hiện tìm kiếm trên dãy aGiưa+1, aGiưa+2, …, an.

Quá trình trên sẽ được lặp lại một số lần cho đến khi hoặc đã tìm thấy khố k trong dãy A hoặc phạm vi tìm kiếm bằng rỗng.  Thuật tốn: * Cách liệt kê: - B1: Nhập N, các số hạng a1, a2, …, aN và khố k - B2: Dau 1,Cuoi N; - B3: Giưa = 2 Dau Cuoi      ; - B4: Nếu aGiưa = k thì thơng báo chỉ số Giưa, rồi kết thúc;

- B5: Nếu aGiưa > k thì đặt Cuoi = Giưa - 1, rồi chuyển đến bước 7;

- B6: Dau Giưa +1;

- B7: Nếu Dau > cuoi thì thơng báo dãy A khơng cĩ số hạng nào cĩ giá trị bằng k, kết thúc;

- B8: Quay lại bước 3.

Hoạt động 5: Mơ tả thuật tốn bằng sơ đồ khối

5

* Sơ đồ khối

Dau  1; Cuoi  N Nhập N và a1, a2, …, aN; k

Giua  (Dau + Cuoi)/2 aGiua = k

Đưa ra Giua rồi kết thúc

aGiua > k

Dau  Giua + 1

Cuoi  Giua - 1 Dau > Cuoi

Thơng báo dãy A khơng cĩ số hạng cĩ giá trị bằng k rồi kết thúc Đ S Đ S S Đ

Hoạt động 6: Mơ phỏng việc thực hiện thuật tốn

5

Mơ phỏng việc thực hiện

thuật tốn với N = 10,k= 21 k = 21, N =10 i 1 2 3 4 5 6 7 8 9 10 A 2 4 5 6 9 21 22 30 31 33 Dau 1 6 6 Cuoi 10 10 7 Giua 5 8 6 aGiua 9 30 21 L­ỵt 1 2 3 l­ỵt th ba th× aGiua = k. Vy ch s cÇn t×m lµ i = Giua = 6. Hoạt động 7: Củng cố các kiến thức đã học 3  GV cho HS nhận xét điểm khác biệt cơ bản của 2 thuật tốn

 Các nhĩm thảo luận và trình bày

4. BÀI TẬP VỀ NHÀ:

– Mơ phỏng việc thực hiện thuật tốn với dãy số khác. – Bài 3, 7 SGK.

IV. RÚT KINH NGHIỆM, BỔ SUNG:

... ... ...

Ngày soạn: 07/2008 Chương I: MỘT SỐ KHÁI NIỆM CƠ BẢN CỦA TIN HỌC

Tiết dạy: 15 Bài 4: BÀI TẬP BÀI TỐN VÀ THUẬT

I. MỤC TIÊU:

Kiến thức:

– Hiểu một số thuật tốn đã học như sắp xếp, tìm kiếm.

Kĩ năng:

– Biết cách tìm thuật tốn giải một số bài tốn đơn giản.

Thái độ:

– Luyện khả năng tư duy lơgic khi giải quyết một vấn đề nào đĩ.

II. CHUẨN BỊ:

Giáo viên: Giáo án + bảng vẽ sơ đồ khối

Học sinh: SGK + vở ghi. Làm bài tập

III. HOẠT ĐỘNG DẠY HỌC:

1. Ổn định tổ chức: Kiểm tra sĩ số lớp.

2. Kiểm tra bài cũ:

Hỏi: Nêu thuật tốn giải bài tốn: Tìm giá trị lớn nhất của một dãy số nguyên ?

Đáp: 3. Giảng bài mới:

TL Nội dung Hoạt động của Giáo viên Hoạt động của Học sinh

Hoạt động 1: Luyện tập cách xác định bài tốn

10

Bài 1: Hãy xác định các bài tốn sau:

a) Tính chu vi hình chữ nhật khi cho biết chiều dài và chiều rộng của hình chữ nhật đĩ.

b) Tìm giá trị lớn nhất của 2 số a, b.

 Cho các nhĩm thảo luận, gọi 1 HS bất kì trong nhĩm trả lời.

 HS trả lời

a) Input: chiều dài, ciều rộng Output: chu vi

b) Input: a, b

Output: GTLN của a và b.

Hoạt động 2: Mơ tả thuật tốn giải các bài tốn bằng cách liệt kê hoặc bằng sơ đồ khối.

10

Bài 2: Cho N và dãy số a1, a2, …, aN. Hãy tìm thuật tốn cho biết cĩ bao nhiêu số hạng trong dãy cĩ giá trị bằng 0.

 Cho các nhĩm thực hiện lần lượt các bước để tìm thuật tốn. Gọi 1 HS bất kì trong nhĩm trả lời.

H1. Xác định bài tốn?

H2. Nêu ý tưởng thuật tốn?

 HS trả lời

Đ1. Input: N, a1, a2, …, aN

Output: số Dem cho biết số lượng số 0 cĩ trong dãy số trên.

Đ2.

– Ban đầu Dem = 0

– Lần lượt duyệt qua dãy số, nếu gặp số hạng nào bằng 0 thì tăng giá trị Dem lên 1.

20 Thuật tốn: a) Liệt kê: B1: Nhập N, a1, a2, …, aN B2: i  0; Dem  0 B3: i  i + 1

B4: Nếu i > N thì thơng báo giá trị Dem, rồi kết thúc.

 Hướng dẫn HS liệt kê các bước của thuật tốn và vẽ sơ đồ khối.

Ngày soạn: 26/8/2016 Tiết dạy: 15

Tuần: 8

Chương I: MỘT SỐ KHÁI NIỆM CƠ BẢN CỦA TIN HỌC Bài Tập

B5: Nếu ai = 0 thì Dem  Dem + 1. B6: Quay lại B3. Nhập N, a1, a2, …, aN i  0; Dem  0 i > N ai = 0 Dem  Dem + 1 i  i + 1

Thơng báo giá trị Dem, rồi kết thúc Đ

S

ĐS S

Mơ phỏng việc thực hiện thuật tốn:

a) N = 10, dãy A: 1, 2, 0, 4, 5, 0, 7, 8, 9, 0  Dem = 3 b) N = 10, dãy A: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10  Dem = 0

Hoạt động 3: Củng cố

2  Cho HS nhắc lại các bước tìm

thuật tốn giải 1 bài tốn.  HS nhắc lại

4. BÀI TẬP VỀ NHÀ:

– Xem lại các thuật tốn đã học. – Chuẩn bị kiểm tra 1 tiết.

IV. RÚT KINH NGHIỆM, BỔ SUNG:

... ... ...

I. MỤC TIÊU:

Kiến thức:

– Củng cố các kiến thức đã học về: thơng tin và dữ liệu, cấu trúc máy tính, bài tốn và thuật tốn.

Kĩ năng:

– Biết mã hố thơng tin, mơ phỏng việc thực hiện một thuật tốn.

Thái độ:

– Rèn luyện tính nghiêm túc trong khi làm bài.

II. CHUẨN BỊ:

Giáo viên: Đề bài kiểm tra.

Học sinh: Ơn lại kiến thức đã học.

III. HOẠT ĐỘNG DẠY HỌC:

1. Ổn định tổ chức: Kiểm tra sĩ số lớp.

Một phần của tài liệu giao an tin hoc 10 (Trang 30 - 35)

Tải bản đầy đủ (PDF)

(86 trang)