IV. CỦNG CỐ, ĐÁNH GIÁ CUỐI BÀ
3. Ví dụ về thuật toán Bài toán tìm kiếm
Bài toán tìm kiếm
Cho dãy A gồm N số nguyên a1, a2, ... , aN đã được sắp xếp không giảm và một số nguyên k. Cần biết có hay không chỉ số i (1 ≤ i ≤ N) mà ai
= k. Nếu có hãy cho biết chỉ số đó.
- Số nguyên k được gọi là khóa tìm kiếm.
Thuật toán tìm kiếm tuần tự
? Hãy xác định Input và Output của bài toán?
- Xác định bài toán:
- Ý tưởng giải thuật:
Lần lượt từ số hạng thứ nhất, so sánh giá trị của số hạng đang xét với khóa cho đến khi gặp 1 số hạng bằng khóa hoặc khi xét hết dãy mà không có giá trị nào bằng khóa.
- Thuật toán:
+ Phương pháp liệt kê:
Bước 1: Nhập N, các số hạng a1, a2, a3, ..., aN và khóa k;
Bước 2: i ←1 ;
Bước 3: Nếu ai = k thì chỉ số i rồi kết thúc;
Bước 4: i ← i + 1;
Bước 5: Nếu i > N thì thông báo dãy A không có số hạng nào có giá trị bằng k, rồi kết thúc;
Bước 6: Quay lại bước 3;
Thuật toán tìm kiếm nhị phân
? Hãy xác định Input và Output của bài toán?
- Xác định bài toán:
- Ý tưởng giải thuật:
+ Chọn agiữa ở giữa dãy số để so sánh với k. giữa = +2
1N N
* Nếu agiữa = k thì giữa là chỉ số cần tìm.
HS nghe giảng, ghi chép.
HS lên bảng xác định:
+ Input: Dãy A gồm N số nguyên khác nhau a1, a2, ... , aN
+ 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 có giá trị bằng k.
HS ghi chép, nghe giảng Nhập N, dáy số a1, a2,a3, ..., aNvà k Đưa ra k Rồi kết thúc ag = k ai>ai+1 ? i > M? g ← (d + c)/2 sai Đúng sai Đúng d ← 1, c ← N d←g+1 Đúng sai c ←g -1
* Nếu agiữa>k thì ta chỉ xét khoảng a1, a2, ..., agiữa-1
* Nếu agiữa<k thì ta chỉ xét khoảng ag, ag+1, ..., aN
+ Quá trình này lặp cho đến khi tìm được khóa k hoặc thông báo không có.
- Thuật toán:
+ Phương pháp liệt kê:
Bước 1: Nhập N, các số hạng a1, a2, a3, ..., aN và khóa k; Bước 2: d ←1, c ← N; Bước 3: g ← +2 1 N ;
Bước 4: Nếu ag = k thì thông báo g rồi kết thúc;
Bước 5: Nếu ag > k thì c ← g – 1 rồi chuyển sang Bước 7;
Bước 6: d ← g + 1;
Bước 7:Nếu d > g thì thông báo dãy A không có số hạng nào có giá trị bằng k, rồi kết thúc;
Bước 8: Quay lại bước 3;
HS ghi chép, nghe giảng
GV yêu cầu HS về nhà xây dựng thuật toán bằng phương pháp sơ đồ khối
IV. CỦNG CỐ, ĐÁNH GIÁ CUỐI BÀI
− Muốn giải một bài toán, trước tiên phải xác định được Input và Output của bài toán: + Input: thông tin đưa vào máy.
+ Output: Thông tin muốn lấy từ máy.
− Học sinh về nhà tiếp tục nghiên cứu phần ví dụ và các phần tiếp thep của bài học.
Ngày 23/10/2008
Tiết: 15 BÀI TẬP
I. MỤC TIÊU
1.Kiến thức:
− Xác định được bài toán, viết được các thuật toán.
2. Kỹ năng:
− Xây dựng được các bài toán đơn giản, các bài toán trong SGK.
3. Thái độ:
− Phát triển tư duy giải các bài toán khác ở các môn học và làm việc theo thuật toán trong các môn học cũng như trong thực tế.