Hãy xác định bài toán?

Một phần của tài liệu ga10 3cot chuan khong chinh (Trang 32 - 35)

III. Một số ví dụ: (tt)

H. Hãy xác định bài toán?

• GV hướng dẫn HS tìm thuật toán giải bài toán.

• GV hướng dẫn HS trình bày thuật toán tìm kiếm bằng cách liệt kê.

• i là biến chỉ số và nhận giá trị nguyên lần lượt từ 1 đến N+1.

Đ. + Input: N, a1, a2, …, aN, k

+ Output: i hoặc thông báo không có i

• Cho các nhóm trình bày ý tưởng.

• Các nhóm thảo luận và đưa ra thuật toán.

Hoạt động 2: Diễn tả thuật toán tìm kiếm bằng sơ đồ khối * Sơ đồ khối:

Hoạt động 3: Mô phỏng việc thực hiện thuật toán

Mô phỏng việc thực hiện thuật toán với: + N = 10, k = 2

k = 2 vµ N = 10

A 5 7 1 4 2 9 8 11 25 51

i 1 2 3 4 5 - - - - -

Víi i = 5 th× a5 = 2.

Hoạt động 4: Hướng dẫn tìm thuật toán giải bài toán

Nội dung Hoạt động của GV Hoạt động

của HS b) Thuật toán tìm kiếm nhị phân (Binary

Search)

• Xác định bài toá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 lần so sánh khoá 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 = N2+1

 . Khi đó: 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 khoá k trong dãy A hoặc phạm vi tìm kiếm bằng rỗng. • Thuật toán: * Cách liệt kê: - B1: Nhập N, các số hạng a1, a2, …, aN và khoá k - B2: Dau ¬ 1,Cuoi ¬ N;

- B3: Giưa = Dau Cuoi+2 

 ;

- 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; • Nhấn mạnh dãy A là một dãy tăng. H. So sánh 2 bài toán tìm kiếm trong 2 thuật toán? • GV hướng dẫn HS tìm thuật toán giải bài toá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 toán. Đ. Dãy A ở đây là dãy tăng • Các nhóm trình bày cách làm

- 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 toán bằng sơ đồ khối * Sơ đồ khối

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

Mô phỏng việc thực hiện thuật toá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 Da u 1 6 6 Cu oi 10 10 7 Giu a 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 • GV cho HS nhận xét điểm khác biệt cơ bản của 2 thuật toán

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

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

– Tập mô phỏng việc thực hiện thuật toán trên với dãy số khác.

---

Ngày soạn:

Tiết PPCT: 14 + 15

Một phần của tài liệu ga10 3cot chuan khong chinh (Trang 32 - 35)

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

(172 trang)
w